Unity勇者の冒険の書

Unityで学んだことや便利なものなど作ったら紹介します

【Unity勇者の奮闘記】public変数をInspector上から消す

初期値を設定して実行!


・・・あれ?動かない?
こんなことありませんか?

 

調べてみたところ、スクリプトで指定したのにpublicで宣言してたから
inspector上の値が優先されて値が全部上書きされてた!(´Д`)

 

こんなことに一時間も取られた…
俺の一時間返せ!!

 

色んな所から呼び出す変数だからprivateで宣言するわけにもいかないし…
public変数をInspector上から消すってことが出来ればなぁ…と調べていたら
いいものがありました!

 

[HideInInspector]
[System.NonSerialized]

 

逆に、private変数をインスペクタ上に表示するのは、


[SerializeField]


[HideInInspector]の方はプレハブで値を持つらしいから
[System.NonSerialized]を使うほうがトラブルが少なくなるっぽい


使い方は、めっちゃ簡単!

[System.NonSerialized]
public int enemyHP;

[System.NonSerialized]
public float timCnt;

で、見えなくなるみたいです!
早速使ってみました!

 

【使用前】

f:id:LightGive:20150525000039j:plain

 

【使用後】

f:id:LightGive:20150525000032j:plain

おおー!!( ゚Д゚)
すっきり!

でも一つずつ変数の上に指定しないといけないのは面倒だねー
何はともあれ解決した!では!


参考にしたページ

[NonSerialized] vs [HideInInspector] question - Unity Answers

qiita.com

 

では('ω')ノ