Unityでゲームを作る時、オブジェクトの数が多いときや
自動生成されるゲームオブジェクトだと、コードからコンポーネントを取得したい時が多いですよね?
今回はそんなコードから親や子オブジェクトからコンポーネントを
取得したい時の対処方法について紹介していきます!
UnityのGetComponentの効果
GetComponentはゲームオブジェクトに
アタッチされているコンポーネントを
取得できるコードになっています。
例えば下記オブジェクトのTransFormコンポーネントを取得したい場合は
- スクリプト作成
- Squareオブジェクトに作成したスクリプトをアタッチ
- コード記述
サンプルコード
Test.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Test : MonoBehaviour
{
private Transform square;
void Start()
{
square = GetComponent<Transform>();
}
}
親オブジェクトから子オブジェクトのコンポーネントを取得するには
この機能を使えば親のオブジェクトからも
コンポーネントを取得することが可能になっています。
例えばSquare_ChildrenオブジェクトのTransFormコンポーネントを
Squareから取得したい場合は
- スクリプト作成
- Square_Childrenオブジェクトに作成したスクリプトをアタッチ
- コード記述
上記で可能になっています。
サンプルコード
Test.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Test : MonoBehaviour
{
private Transform square;
void Start()
{
square = GetComponentInChildren<Transform>();
}
}
子オブジェクトから親オブジェクトのコンポーネントを取得するには
さらには子オブジェクトから親オブジェクトのコンポーネントを
取得することも可能になっています。
例えばSquareオブジェクトのTransFormコンポーネントを
Square_Childrenから取得したい場合は
- スクリプト作成
- Squareオブジェクトに作成したスクリプトをアタッチ
- コード記述
サンプルコード
Test.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Square_Children : MonoBehaviour
{
private Transform square;
void Start()
{
square = GetComponentInParent<Transform>();//一番上の親についているコンポーネントを取得する
}
}
YouTubeチャンネル
ゲーム雑学や、具体的なゲーム開発方法まで紹介しているチャンネルを運営しています!