シヴァのブログ

UnityやUE4や趣味とかいろいろ...

「Unity」Findについて

Findについてメモ。

バージョン:Unity 2017.1.2f1

・GameObject.Find()

内容:
Hirearchy上のオブジェクトを取得
メリット・デメリット:
アクティブなオブジェクトのみ検索できる。
(非アクティブなオブジェクトはエラーになる)

public class Enemy : MonoBehaviour {
	// Hirearchy上のプレイヤー検索
	private GameObject player;

	void Start () {
		player = GameObject.Find ("Player");

		player.SetActive(false);//できる

		player.SetActive(true);//エラーになる
	}
}
・gameObject.transform.Find()

内容:
子オブジェクトのTransformを取得
メリット・デメリット:
アクティブ・非アクティブなオブジェクトを検索できる。

public class Enemy : MonoBehaviour {
	// ヒエラルキー上のEnemy.csを付けたオブジェクトの子オブジェクトの中でプレイヤー検索
	private Transform cWeakPoint;

	void Start () {
		cWeakPoint = gameObject.transform.Find ("weakPoint");

		cWeakPoint.gameObject.SetActive(false);//できる

		cWeakPoint.gameObject.SetActive(true);//エラーにならない
	}
}