Unity C#で動的配列を作る方法/Listの使い方

christmas IT

動的配列とは、配列の中の変数の数が決まっていない配列のこと、つまり引き出しの数が可変なタンスみたいなものです。
Listで作った配列に対しては、自由に変数を追加・削除することができます。

スポンサーリンク

Listの作成

unity list1
Listを作るには、Listの後に型名を記述し、その後配列名を指定します。
List<int> list = new List<int>();とすればint型のlistという名前の配列が作れるし、
//Unity C#
List<string> list = new List<string>();
型名を変えればstringやfloatでも作れます。

Listに値を追加

unity list2
値を追加するには、配列名.Add(値);と記述します。
追加された値には自動で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に書き出してみます。
unity list
実行結果です。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に今いくつ値が入っているかを確認できます。
unity list count
実行結果です。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内の値を削除できます。
unity list3
実行すると「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]を求めると、
unity list remove
インデックス番号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」なので、
unity list4
インデックス番号0の値「1」と、番号3の「3」はそのまま残ります。
やりたいことから逆引きするUNITYの使い方まとめ
Unityをやりたいことから学習していけるよう、機能・用途別にまとめたページです。C#の命令別の逆引きは現時点で作っていません。2019の時期に書き始めているので、それより前のバージョンについては言及しません。

コメント