HideInInspector の罠
public class Abc : MonoBehaviourみたいな変数を作る。
{
public GameObject mObj;
...
}
インスペクタでGUI的に mObj に値を割り当てた後に
やっぱりインスペクタでこのあたりを設定するのはやめよう、と思い
スクリプトだけを以下のように修正する。(この時インスペクタには触らない)
{すると、
[HideInInspector] GameObject mObj;
}
mObjに値が設定されているがインスペクタからは見えないようになってしまう。
.sceneファイルをテキストエディタで開いたら、
↓こんな感じの記述が残っているのが確認できるはず。
mObj: {fileID: 2020468654}
こうなってしまうとインスペクタや、C#のソースをいくら眺めても値を設定していないように見えるが、シーンファイルにて値が設定されてしまっているので何か変な挙動を行うことがあるはず。
注意したい。
なんでこんなのを見つけたかというと、
大人気アセット「NGUI (version3.0.2)」のサンプル「Popup List」がそうなっていて読み解くのに時間がかかってしまったから。