名古屋でアプリ・VR開発を行っています
ワクワクできるゲームをガンガン開発リリース中!

UnityのInspectorに多次元配列を表示する

皆さん、こんにちは!SAT-BOXのツバメです。
今回はUnityで多次元配列をInspectorに表示する方法を紹介しようと思います。
多次元配列はそのままコードを書いてもInspectorに表示されないので厄介です。
内部の情報を知りたい場合ログを出力する必要があるので面倒ですね。
今回は2通りの方法を使用してInspectorに表示してみようと思います。

1.クラス(class)で表示
単純に配列を持ったクラスを作成して、そのクラスを配列にするという感じです。
以下コードになります。

 [System.Serializable]
 public class MultiArrayClass
 {
    [Header("多次元配列")]
    public int[] multiArray;

    public MultiArrayClass(int[] _multiArray)
    {
       multiArray = _multiArray;
    }
}

[SerializeField, Header("多次元配列クラス")]
private MultiArrayClass[] multiArrayClasses;

f:id:sat-box:20200309165141p:plain

2.構造体(struct)で表示
配列を持った構造体を作成して、構造体を配列にするという感じです。
以下コードです。

[System.Serializable]
public struct MultiArray
{
    [Header("多次元配列")]
    public int[] multiArray;
}

[SerializeField, Header("多次元配列構造体")]
private MultiArray[] multiArrays;

f:id:sat-box:20200309165435p:plain

以上の2つの方法で表示することができます。
基本的には1番目のクラスで表示する方が利便性はあると思います。
(構造体使わないかも…)

classで表示した方がいい理由についてはこちらの記事に詳細に書いてあるので
気になる方は確認して見てください。
techblog.kayac.com


以上、ツバメでした!