はじめに
どうも! みなため(@MinatameT)です。
Unityで「public int a」や「public float b」のように、public変数を用意すると、インスペクター上でその値を変更できるようになりますよね。
しかし、「他のスクリプトから参照したい変数をpublicにしただけなのに、インスペクター上に表示されるのは邪魔だ……」と思っている方もいらっしゃると思います。
そこで、この記事では、public変数をインスペクター上で非表示にする(隠す)方法を説明します。
超簡単なので、すぐに実施できますよ!
public変数をインスペクター上で非表示にする(隠す)方法
非表示にしたい変数の宣言の上の行に、
[System.NonSerialized]
を追加するだけです。
例えば、次のコードをご覧ください。
public double speed;
double型のpublic変数「speed」の宣言ですね。これを、非表示にしたいなら、
[System.NonSerialized]
public double speed;
と記述すればOKです。
これは1つの変数だけではなく、複数の変数にも対応していて、
[System.NonSerialized]
public double speed;
public int HP;
[System.NonSerialized]
public int score;
とすれば、「speed」と「score」がインスペクター上で非表示になります。「HP」は上の行に「[System.NonSerialized]」を記述していないので、非表示にはなりません。
複数のpublic変数を非表示にすることで、インスペクターがスッキリします。ぜひ、やってみてください。