シーン階層をたどる
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秒