Unityでゲームオブジェクトやコンポーネントを探す方法色々
この記事は最終更新日から9年以上経過しています。
ゲームオブジェクトを探す方法がたくさんあってどれにしようか迷う事が多いのでメモ。
自身のGameObjectを参照
コピーしました
GameObject obj = this.gameObject;transformからGameObjectを参照
コピーしました
GameObject obj = transform.gameObject;親を参照
コピーしました
GameObject obj = transform.parent.gameObject;子の参照(for)
for文 + GetChild で取得する場合。
コピーしました
for(int i = 0; i < transform.childCount; i++){
GameObject obj = transform.GetChild (i).gameObject;
}子の参照(foreach)
foreach文 で取得する場合。
コピーしました
foreach(Transform t in transform){
GameObject obj = t.gameObject;
}Findで探す
Hierarchy上に配置されているオブジェクトをFindで探す。
コピーしました
GameObject obj = GameObject.Find("Environments") as GameObject;パスを書けば階層も辿れる。
コピーしました
GameObject obj = GameObject.Find("Environments/Directional Light") as GameObject;FindWithTagで探す
InspectorでTagをつけるのを忘れない事。最後にTagをつけたオブジェクトが参照できる。
コピーしました
GameObject obj = GameObject.FindWithTag("Actor") as GameObject;FindGameObjectsWithTagで探す
複数ある場合はこっち。配列の中身はInspectorでTagをつけた順になってる。
コピーしました
GameObject[] objs = GameObject.FindGameObjectsWithTag("Actor");
foreach(GameObject obj in objs)
{
print ("FindGameObjectsWithTag: " + obj);
}FindObjectOfTypeで探す
コピーしました
Dammy dammy = FindObjectOfType(typeof(Dammy)) as Dammy;FindObjectsOfTypeで探す
複数ある場合はこっち。
コピーしました
Dammy dammy = FindObjectOfType(typeof(Dammy)) as Dammy;GetComponentで参照
コピーしました
Dammy dammy = gameObject.GetComponent<Dammy> () as Dammy;GetComponentInChildrenで参照
コピーしました
Dammy dammy = gameObject.GetComponent<Dammy> () as Dammy;よく見られている記事
