動的配列とは、配列の中の変数の数が決まっていない配列のこと、つまり引き出しの数が可変なタンスみたいなものです。
Listで作った配列に対しては、自由に変数を追加・削除することができます。
Listの作成
Listを作るには、Listの後に型名を記述し、その後配列名を指定します。
List<int> list = new List<int>();とすればint型のlistという名前の配列が作れるし、
List<int> list = new List<int>();とすればint型のlistという名前の配列が作れるし、
//Unity C#
List<string> list = new List<string>();
型名を変えればstringやfloatでも作れます。
Listに値を追加
値を追加するには、配列名.Add(値);と記述します。
追加された値には自動で0から通し番号(インデックス)がふられるので、この場合list[0]、list[1]、list[2]にそれぞれ1、2、3が代入されたことになります。
追加された値には自動で0から通し番号(インデックス)がふられるので、この場合list[0]、list[1]、list[2]にそれぞれ1、2、3が代入されたことになります。
Listの値の取得
//Unity C#
using UnityEngine.UI;
public class textChanger : MonoBehaviour
{
List<int> list = new List<int>();
Text text;
void Start()
{
list.Add(1);
list.Add(2);
list.Add(3);
text = GameObject.Find("Text").GetComponent<Text>();
}
//イベントトリガーでボタン押した時に処理実行
public void ButtonClick()
{
text.text = list[0].ToString();
}
}
作成したlist[0]をTextに書き出してみます。
実行結果です。list[0]の中身である値1がTextに表示されました。
Listの長さの取得
//Unity C#
void Start()
{
list.Add(1);
list.Add(2);
list.Add(3);
text = GameObject.Find("Text").GetComponent<Text>();
}
public void ButtonClick()
{
text.text = list.Count.ToString();
}
配列名.Countを求めることで、Listに今いくつ値が入っているかを確認できます。
実行結果です。3つ値が入っているので、3という値が取得されます。
Listの値を削除
//Unity C#
void Start()
{
list.Add(1);
list.Add(2);
list.Add(3);
text = GameObject.Find("Text").GetComponent<Text>();
}
public void ButtonClick()
{
list.Remove(1);
text.text = list.Count.ToString();
}
配列名.Remove(値)で、List内の値を削除できます。
実行すると「1」が削除され、Listの長さが1減っていることが確認できます。
//Unity C#
void Start()
{
list.Add(1);
list.Add(2);
list.Add(3);
text = GameObject.Find("Text").GetComponent<Text>();
}
public void ButtonClick()
{
list.Remove(1);
text.text = list[0].ToString();
}
「1」を削除した後list[0]を求めると、
インデックス番号0が今度は「2」に割り振られていることがわかります。
インデックス番号で値を削除
//Unity C#
void Start()
{
list.Add(1);
list.Add(2);
list.Add(3);
text = GameObject.Find("Text").GetComponent<Text>();
}
public void ButtonClick()
{
list.RemoveAt(1);
text.text = list[0].ToString();
}
RemoveAt(インデックス)で、インデックス番号を指定して値を削除できます。
インデックス番号1の値は「2」なので、
インデックス番号1の値は「2」なので、
インデックス番号0の値「1」と、番号3の「3」はそのまま残ります。
やりたいことから逆引きするUNITYの使い方まとめ
Unityをやりたいことから学習していけるよう、機能・用途別にまとめたページです。C#の命令別の逆引きは現時点で作っていません。2019の時期に書き始めているので、それより前のバージョンについては言及しません。
コメント