いきなりまとめ
- transform.localPositionは直上の親のtransformからのオフセット
- transform.positionはワールド座標
- Inspector上のPositionはtransform.localPosition
子から親オブジェクトを取得
親オブジェクトは1つしかないため?transform.parentが親オブジェクトのtransformを表す。親ゲームオブジェクト自体を取得したい場合はtransform.parent.gameObjectとする。
Transform parentTransform = transform.parent; GameObject parent = transform.parent.gameObject;
親から子オブジェクトを取得
子オブジェクトは複数ある可能性があるため、transform.childのようなアクセスの仕方はない。transform.Find("Child")でChildという名前の子オブジェクトのtransformを取得できる。ゲームオブジェクトに関しては同上。
Transform childTransform = transform.Find("Child");
GameObject child = childTransform.gameObject;
親から孫オブジェクトを取得
transform.Find("Child/GrandChild")でChildという名前の子オブジェクト内のGrandChildという名前の孫オブジェクトのtransformを取得できる。ゲームオブジェクトに関しては同上。
Transform grandChildTransform = transform.Find("Child/GrandChild");
GameObject grandChild = grandChildTransform.gameObject;