Unity インスペクター上からprivate変数を弄る方法
あいさつ
どうも、はかせです。
今回もUnityTips記事です。
今回のTipsはUnityでインスペクター上から弄りたい変数なんだけど
他のクラスから弄られたくないときに使えるものの紹介です。
[SerializeField]
これは属性といわれるものの一つで
この宣言を先頭にした変数はインスペクター上に公開されます。
宣言した時としなかった時のインスペクターを見てみましょう。
まずは宣言しなかった時のスクリプトとインスペクターです。
public class TestScript : MonoBehaviour { private int mTestInt; }
次に宣言した時のスクリプトとインスペクターです。
public class TestScript : MonoBehaviour { [SerializeField] private int mTestInt; }
[SerializeField]宣言した変数がインスペクター上に出ています。
この欄に変数に代入したい値を入力することで
インスペクター上からprivate変数を弄ることが出来ます。
ちなみに
public class TestScript : MonoBehaviour { [SerializeField]private int mTestInt; }
こう書いても問題なく動きます。
これは好みです。
あとがき
今回はUnityの[SerializeField]紹介でした。
私はpublicで外部に弄られたくないがちょこちょこ変える値(操作感度とか)に
この属性を付けます。
まぁ個人や小規模開発ならpublicで書いちゃってもいい気がしますが
[SerializeField]つけると「この値はインスペクター上から弄る」という意思表示になって
後から読むとき気持ち楽になります。
それでは今回はこの辺でノシ