[Unity]スクリプトを使った親オブジェクトの取得

posted in: unity | 0

Unityにて、子オブジェクトから親オブジェクトの情報を取得するために、スクリプト(C#)を用意する。

オブジェクト「Bullet」をResourcesから呼び出したとき、オブジェクト「Player」のTransform情報(positionやscale)を取得するために、Playerを親、Bulletを子オブジェクトにした。

unityにて、子オブジェクトから親オブジェクトを取得する場合、スクリプトでは

transform.parent.gameObject;

を入力する。

これで一つ上の親オブジェクトを取得することが可能になる。

そのまま、子オブジェクトが直上の親オブジェクトのスケール(scale)を取得し、親オブジェクトの方向に合わせて子オブジェクトを動かしたいときは以下のようになる。

parent_object = transform.parent.gameObject;
Rigidbody2D rigidbody2D = GetComponent<Rigidbody2D>();
rigidbody2D.velocity = new Vector2(speed * parent_object.transform.localScale.x, rigidbody2D.velocity.y);

Playerの位置からBulletが出現し動くようになった。