ぷるぷるの雑記

低レイヤーがんばるぞいなブログ. 記事のご利用は自己責任で.

Unityの親子関係とtransformのメモ

いきなりまとめ

  • 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; 

参考

zenn.dev