親オブジェクト、子オブジェクト(1つだけ)を、スクリプトを使って取得してみましょう。
親子関係のある2つのオブジェクトについて、親は子を、子は親を取得して、コンソールに表示します。
関連記事:
非アクティブのオブジェクトを当たり判定で取得
落下中のオブジェクトのゆがみ
取ったオブジェクトを前で持ち続ける
ボールをキャッチして投げ返す
動く床の上で一緒に移動する
子オブジェクトをすべて取得
親オブジェクトのRigidBodyを取得する
オブジェクトの準備
Cubeを作成します。
Cubeを右クリック > 3Dオブジェクト > スフィア
CubeとSphereで親子関係ができます。
わかりやいように、Sphereの位置を少しずらします。
親オブジェクトを取得
SphereScript.csを作成し、Sphereに追加します。
SphereScript.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class SphereScript : MonoBehaviour { private GameObject parentObj; void Update() { if (Input.GetKeyDown(KeyCode.P)) { parentObj = transform.parent.gameObject; Debug.Log(parentObj); } } } |
親オブジェクトは、transform.parent.gameObject と書いて取得できます。
ゲームプレイして、Pキーを押してみましょう。
コンソールに、親オブジェクトであるCubeが表示されます。
子オブジェクトを1つだけ取得
親からみて、子オブジェクトは1つとは限りませんが、今回は、子が1つだけのケースとして作成してみます。
CubeScript.csを作成し、Cubeに追加します。
CubeScript.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CubeScript : MonoBehaviour { private GameObject childObj; void Update() { if (Input.GetKeyDown(KeyCode.C)) { childObj = transform.GetChild(0).gameObject; Debug.Log(childObj); } } } |
子オブジェクトが1つだけの場合は、transform.GetChild(0).gameObject と書いて取得できます。
ゲームプレイして、Cキーを押してみましょう。
コンソールに、子オブジェクトであるSphereが表示されます。
関連記事:
非アクティブのオブジェクトを当たり判定で取得
落下中のオブジェクトのゆがみ
取ったオブジェクトを前で持ち続ける
ボールをキャッチして投げ返す
動く床の上で一緒に移動する
子オブジェクトをすべて取得
親オブジェクトのRigidBodyを取得する