シーンのルートにあるオブジェクト一覧を取得する。
例えばオブジェクトを削除する場合、ルートのオブジェクトを削除してしまえばそれ以下のオブジェクトも釣られて削除出来る…とか、ルートのオブジェクトをdisableにしてアクティブスイッチでシーン切り替えっぽいことをする等に使える。
このコードを配置後、
transform.FindRootObject ();
を呼べばシーン内のルートオブジェクト一覧が取得出来る。
ただ、内部でfindを使用しているので効率は悪め。上記のような「数十秒に1回しか使わない」場合は手っ取り早い手段だが、コンスタントにルートオブジェクトを呼び出したい場合は、他の手段を用意する必要がありそう。
- エディタでルートシーン一覧を取得しておく。
エディタ拡張で一覧を取得しリストに保存する処理でも書いておけばOK。
([Unity]事前にシーンのルートにあるGameObjectを取得しておく) - ルートオブジェクトリストを作成し、ルートオブジェクトリストに自身を登録するコンポーネントをルートオブジェクトに設定しておく。
- 検索結果をキャッシュする