149cmプログラマ-

お仕事できるように勉強するー。

Unityの親子。★transform.parent とgameObject

gameObject.transform.parent.gameObject.transform.gameObject.transform.gameObject・・・・。
永遠に繰り返せるという話。

transform ←gameObject & transform →gameObject

まず、

transform ←gameObject

gameObject から、transform にアクセスするには
gameObject.transform

transform →gameObject

transform から、gameObjectにアクセスするには
transform.gameObject

親子のgameObjectがほしい時

子(ぜんぶ)

for(int i=0; i<transform.childCount; i++){
    Transform childObject = transform.GetChild (i);
}
//childCount:子要素の数

GameObject parentObject = gameObject.transform.parent.gameObject;

transform とgameObject

あれ。あれ。子がTransform で、親がGameObjectになってた。 上に書いたやつ。

逆のは

gameObject.transformとかでアクセスしていけば、

子のGameObject

取得したいのがgameObjectだったら、

for(int i=0; i<transform.childCount; i++){
    GameObject childObject = transform.GetChild (i).gameObject;
}

親のTransform

Transform parentObject = gameObject.transform.parent.gameObject.transform;

・・・・.parent.gameObject.transform?

Transform parentObject = gameObject.transform.parent.gameObject.transform;

じゃなくて、

Transform parentObject = gameObject.transform.parent;

で、これでもう。Transform だった。

以上。永遠に繰り返す、という話。でしたgameObject.transform.gameObject.transform.gameObject.transform.gameObject・・・・。

なんか普通に。よけいに書いちゃったりするー。

ちなみに

//作成したgameObject のtransform.parentに
//親にするオブジェクトの transformをセットすると、
//Instantiateしてからの親子階層がつくれるんだって。
GameObject gObj = (GameObject)Instantiate(プレハブ);
gObj.transform.parent = 親.transform;

いつか使いそう。φ(・・。)♪