今回はUnityと言うか少しプログラム的なメモです。静的配列(array)と動的配列(list)の基本についてです。
はじめに
プログラミングで値(文字や数字)を扱う時は、変数を使用します。「int i=0」とか「str moji=”A”」みたいな感じですね。iは「int型の変数の箱」で0が入ってるという感じですね。
同じデータ型の変数を大量に使う場合、「int i,i2,i3・・・」とするのではなく、配列を使用すると簡潔になりますね。
配列は多くのプログラミング言語に存在し、もちろんUnityのC#にもあります。
簡単なスクリプト例
実際にスクリプトを見ていきます。
静的配列(array)
簡単なint型の静的配列の場合、下記の様な感じになります。
using UnityEngine;
public class NewBehaviourScript : MonoBehaviour
{
private int[] intArray = new int[3];
void Start()
{
intArray[0] = 10;
intArray[1] = 20;
intArray[2] = 30;
}
}
下記の様に初期値として入れることもできます。
using UnityEngine;
public class NewBehaviourScript : MonoBehaviour
{
private int[] intArray = { 10, 20, 30 };
}
Unityぽいのは下記の感じかな。
using UnityEngine;
public class NewBehaviourScript : MonoBehaviour
{
[SerializeField] private int[] intArray;
}
インスペクター画面で初期値をセットします。

「intArray[0]に10、intArray[1]に20、intArray[2]に30」が入っている状態ですね。配列の数がプログラム内で変わらない場合、こんな感じですかね。
動的配列(List)
次は動的配列です。配列の数がゲーム中(プログラム内)で増えたり減ったりする場合に使うものです。
動的配列の場合、下記の様のような感じになります。Addで追加すると値と共に配列数も追加されます。
using System.Collections.Generic;
using UnityEngine;
public class NewBehaviourScript : MonoBehaviour
{
private List<int> intList = new List<int>();
void Start()
{
intList.Add(10);
intList.Add(20);
intList.Add(30);
}
}
同じようにUnityのインスペクター画面でセットもできます。
using System.Collections.Generic;
using UnityEngine;
public class NewBehaviourScript : MonoBehaviour
{
[SerializeField] private List<int> intList;
}

配列の要素を削除したい場合は下記の様な感じ。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class NewBehaviourScript : MonoBehaviour
{
[SerializeField] private List<int> intList;
void Start()
{
intList.Remove(20);
}
}
実行すると配列は下記の様になります。2番目が削除されてその分詰まる感じですね。

配列の要素番号を指定して削除する場合は下記の様な感じ。結果は同じです。
intList.RemoveAt(1);
増えたり減ったりするもの、例えばアイテムを配列で管理する場合はLISTを利用して追加、削除て感じですかね。