よく言われる「プロパティもインスペクター上で表示できたらな」ってのをバッキングフィールドを用意して実現します。(要は自動実装プロパティを自前で実装)
using UnityEngine; public class NewScript : MonoBehaviour { [SerializeField] #region public int Value1 { get; } private int _value1; public int Value1 { get { return _value1; } } #endregion [SerializeField] #region public int Value2 { get; private set; } private int _value2; public int Value2 { get { return _value2; } private set { _value2 = value; } } #endregion [SerializeField] #region public int Value3 { get; set; } private int _value3; public int Value3 { get { return _value3; } set { _value3 = value; } } #endregion }
定義を#region~#endregionで囲んでおけば、Visual Studio上だと折りたたまれて表示されるので、見づらいのが少しましになるかも。
(ところで、きっと書籍とかサンプルコードとかの影響だと思うけど、シリアライズしたい値をなんでもかんでもpublicにしちゃいがちなのはよくないと思うんだ……)