UnityでScriptを作成すると変数がEditerのInspectorに表示され、そこからも値を設定できるようにシリアライズされる機能についてです。
基本
表示する方法
publicは自動でシリアライズされる。
staticは[SerializeField]
を書くことでシリアライズできる。
using UnityEngine;
public class Inspector : MonoBehaviour {
public bool flag1;
[SerializeField]
private bool flag2;
}
表示しない方法
private変数やstatic変数や定数(const)はシリアライズされない。
[HideInInspector]
をpublic変数の前につけるとInspectorへの表示を消す。
[System.NonSerialized]
をpublic変数の前につけるとシリアライズしない。
using UnityEngine;
public class Inspector : MonoBehaviour {
private bool flag1;
static bool flag2;
public const bool flag3;
[HideInInspector]
public bool flag4;
[System.NonSerialized]
public bool flag5;
}
折りたたみ表示
[System.Serializable]
をクラスの前につけ、そのクラス変数をシリアライズするとInspectorには折りたたんで表示される。
using UnityEngine;
[System.Serializable]
public class FriendClass {
public string name;
public bool sex;
public int age;
}
public class Inspector : MonoBehaviour {
public FriendClass Friend;
}