饂飩コーディング

iOSアプリやら、Unityやら、Cocos2dやらごにょごにょ書いております

gameObjectの階層で注意する点

いままでオブジェクトの階層構造を意識したことがなかったので、prefabeから大量の同一GameObjectを作成した場合にRayでタッチ判定させたときのタッチされたGameObjectの動きは階層を意識しないと動きを制御できなることに気がつきました。

当然と言えば当然なんですけどね。

自分自身の子オブジェクトを操作する時は
gameObject.transform〜と「gameObject」は小文字で!!!
これはthis.gameObjectの略でスクリプトから見た時のくっついている親ってことですね。

 GameObject cube2 = gameObject.transform.FindChild("Shape1").gameObject;

GameObject.Find〜だとShape1を全体(root)から順に詮索して最初のObjectを返します

GameObject cube2 = GameObject.Find("Shape1").gameObject;

GameObjectの階層はまたしっかり勉強することとします。

ちなみにGameObject はClassだからgameObject(this.gameObject)とはそもそも別物ですね。


以下の「gameObjectとGameObjectの違いとは?」を参考にさせていただきました
http://unitylab.wiki.fc2.com/wiki/スクリプト