トップ 一覧 検索 ヘルプ RSS ログイン

unity_script_search_hierarchy_gameobjectの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!!シーン階層をたどる

GameObjectのtransformをたどることにより、子階層にどのGameObjectがあるかたどっていくことができます。
GameObject.Findと異なり、アクティブでないものも検索できます。

以下はNGUIの「/UI Root」をルートとして、その子階層をたどる例です。
 GameObject rootG = GameObject.Find("/UI Root") as GameObject;
 if (rootG != null) m_SearchChild(0, rootG);
 

 // 指定のGameObjectの子を再帰的にたどる.
 private void m_SearchChild(int depth, GameObject gameObject) {
   Debug.Log((depth).ToString() + " : name = " + gameObject.name +
     " / active " + (gameObject.activeSelf ? "true" : "false"));
 
   for (int i = 0; i < gameObject.transform.childCount; i++) {
     GameObject gameObjectC = gameObject.transform.GetChild(i).gameObject;
     m_SearchChild(depth + 1, gameObjectC);
   }
 }

指定のGameObjectの「transform.childCount」で、子のGameObject数を取得。
「transform.GetChild(i).gameObject」で、i番目の子のGameObjectを取得。
これを再帰的に処理すれば、階層をたどることができます。

----
{{lastmodified}}