#GameObject.Find()とは
UnityEngineで提供されているGameObjectクラスをつかってシーン内のオブジェクトを取得する関数.引数に対象のオブジェクト名,相対パス,絶対パスが指定できる.詳しくは公式のマニュアル参照.
#nullが帰ってくるとき
##パスが間違っている(orオブジェクトが存在しない)
スペルミスやそもそも対象のものがないとき.これは直せばOK.
##アクティブでない
公式マニュアルにもあるが,対象がアクティブになっていないときはnullになる.(これに気付かないでハマってた)
こういう場合は,親オブジェクトを経由することで取得する方法がある.Transform.Find()はアクティブでなくても取得できるので,以下のようなコードを書けば取得できる.transformからGameObjectに変えなければいけないので注意.
FindTest.cs
GameObject parent, target;
void Start() {
parent = GameObject.Find("path/to/oya");
target = parent.transform.Find("WantIt").gameObject;
}
void Update() {
//処理
}