静的配列と動的配列の基本。arrayとListについて【Unityメモ】

今回は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を利用して追加、削除て感じですかね。

タイトルとURLをコピーしました