値をインスペクタから設定したい場合publicにしておけばできますが、同時に外部からのアクセスを許可することになります。
外部からアクセスして欲しくない場合はフィールドの前に[SerializeField]をつけることでprivateのままインスペクタからの設定が可能になります。
じゃあこのフィールド取得できるようにしたい。と思って
[SerializeField]
private int hoge { get; }
のように書いてもうまくいきません。
エラーは出なくてもインスペクタに表示されないと思います。
ゲッターを書いてプロパティ化してますが、プロパティは内部的にはメソッド扱いでシリアライズできないのでインスペクタに表示もできません。
手っ取り早い解決方法としてアクセサを用いることで実装できます。
[SerializeField]
private int hoge ;
public int Hoge{ get { return hoge; }}
コメント
コメントを投稿