わかりにくいタイトルだが、具体的な例で説明する。
下のように、メインであるクラス(下の例では、Physics)のPublic変数にカスタム・クラス(SubData)
を指定しているとする。、
using UnityEngine; using System.Collections; public class SubData { public int data1; public int data2; private int data3; } public class Physics : MonoBehaviour { public SubData data; // 途中省略 }
この場合、インスペクターから、SubDataクラスは見えない。つまり、data1, data2も見えない。
インスペクタからSubDataの中にある変数を見えるようにするには、Runtime Attributeの、[System.Serializable]を指定する。
[System.Serializable] public class SubData { public int data1; public int data2; private int data3; }
こうすれば、インスペクタから、SubDataのPublic変数が見えるようになる。SubDataクラスのPrivate変数には当然アクセスはできない。