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

今回はUnityと言うか少しプログラム的なメモです。静的配列(array)と動的配列(list)の基本です。

はじめに

プログラミングで値(文字や数字)を扱う時は、変数を使用します。同じデータ型の変数を大量に使う場合、配列を使用すると簡潔になりますね。

配列は多くのプログラミング言語に存在し、もちろんUnityのC#にもあります。

簡単なスクリプト例

静的配列(array)

まずは簡単なint型の静的配列の場合、下記の様な感じです。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class NewBehaviourScript : MonoBehaviour
{
    private int[] intarray = new int[3];

    void Start()
    {
        intarray[0] = 10;
        intarray[1] = 20;
        intarray[2] = 30;
    }
}

下記の様な感じに初期値を入れるのが一般的かも。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class NewBehaviourScript : MonoBehaviour
{
    private int[] intarray = { 10, 20, 30 };

    void Start()
    {
    }
}

Unityぽいのは下記の感じかな。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class NewBehaviourScript : MonoBehaviour
{
    [SerializeField] private int[] _intarray;

    void Start()
    {
    }
}

インスペクター画面で初期値をセット。

あらかじめ決められた数の場合、こんな感じですかね。

動的配列

次は動的配列。配列の数がゲーム中(プログラム内)で増えたり減ったりする場合に使うものです。

動的配列の場合、下記の様に宣言して要素と値をAddで追加。

using System.Collections;
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;
using System.Collections.Generic;
using UnityEngine;

public class NewBehaviourScript : MonoBehaviour
{
    [SerializeField] private List<int> _intList;

    void Start()
    {
    }
}

配列の要素を削除したい場合は下記の様な感じ。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class NewBehaviourScript : MonoBehaviour
{
    [SerializeField] private List<int> _intList;

    void Start()
    {
        intlist.Remove(20);
    }
}

実行後の配列は下記の様になります。

配列の要素番号を指定して削除する場合は下記の様な感じ。

        intlist.RemoveAt(1);

例えば、アイテムを配列で管理する場合。LISTを利用して追加、削除て感じですかね。

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