トップ 差分 一覧 ソース 検索 ヘルプ 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を取得。
これを再帰的に処理すれば、階層をたどることができます。


最終更新時間:2014年04月21日 12時48分53秒