ゲームオブジェクトやコンポーネントを参照する

自身のGameObjectを参照

1
GameObject obj = this.gameObject;

transformからGameObjectを参照

1
GameObject obj = transform.gameObject;

親を参照

1
GameObject obj = transform.parent.gameObject;

子の参照(for)

for文 + GetChild で取得する場合。

1
2
3
for(int i = 0; i < transform.childCount; i++){
	GameObject obj = transform.GetChild (i).gameObject;
}

子の参照(foreach)

foreach文 で取得する場合。

1
2
3
foreach(Transform t in transform){
	GameObject obj = t.gameObject;
}

Findで探す

Hierarchy上に配置されているオブジェクトをFindで探す。

1
GameObject obj = GameObject.Find("Environments") as GameObject;

パスを書けば階層も辿れる。

1
GameObject obj = GameObject.Find("Environments/Directional Light") as GameObject;

FindWithTagで探す

InspectorでTagをつけるのを忘れない事。最後にTagをつけたオブジェクトが参照できる。

1
GameObject obj = GameObject.FindWithTag("Actor") as GameObject;

FindGameObjectsWithTagで探す

複数ある場合はこっち。配列の中身はInspectorでTagをつけた順になってる。

1
2
3
4
5
GameObject[] objs = GameObject.FindGameObjectsWithTag("Actor");
foreach(GameObject obj in objs)
{
	print ("FindGameObjectsWithTag: " + obj);
}

FindObjectOfTypeで探す

1
Dammy dammy = FindObjectOfType(typeof(Dammy)) as Dammy;

FindObjectsOfTypeで探す

複数ある場合はこっち。

1
2
3
4
5
Dammy[] dammys = FindObjectsOfType(typeof(Dammy)) as Dammy[];
foreach(Dammy dammy in dammys)
{
	print ("dammy: " + dammy);
}

GetComponentで参照

1
Dammy dammy = gameObject.GetComponent<Dammy> () as Dammy;

GetComponentInChildrenで参照

1
Dammy dammy = gameObject.GetComponentInChildren<Dammy> () as Dammy;