読者です 読者をやめる 読者になる 読者になる

【Unity】Prefabで生成されたオブジェクトの名前には(Clone)がついてる

スクリプト上でPrefabをInstantiateし、オブジェクトを生成するということはよくあると思う。
題の通り、この時生成されるオブジェクトの名前には、末尾に(Clone)が付随している。
具体的に問題になるのは、GameObject.Findなんかでオブジェクトを取得したいケース。

//スクリプトAでsomeObjectという名前のPrefabをインスタンス化
Instantiate (someObject);
//スクリプトBで先ほどインスタンス化したオブジェクトを取得したい
Debug.Log(GameObject.Find("someObject"));         //=>Null
Debug.Log(GameObject.Find("someObject(Clone)"));  //=>someObject(Clone)

Hierarchyビューに表記されてる通りで、当然っちゃ当然のことだけど、知らないと意外に厄介だなあと思った。