こんにちは、エンジニアのオオバです。
GetSceneManagerSetup関数
は公式でこのように説明されています。
SceneManager の現在の SceneSetUp を返します。
もう少し噛み砕くと、ロードされているシーンの状態オブジェクト(SceneSetupクラス)の配列を返却します。
例えば上図のようにTestScene1
、TestScene2
がロードされている状態でGetSceneManagerSetup
を実行してみます。
var setups = EditorSceneManager.GetSceneManagerSetup ();
Debug.Log ("要素数 : " + setups.Length);
foreach (var s in setups) {
Debug.Log (s.isActive + " - " + s.isLoaded + " - " + s.path);
}
こんな感じで出力されます。
要素数 : 2
False - True - Assets/TestScene2.unity
True - True - Assets/TestScene1.unity
このようにTestScene1をUnload Scene
した状態で再度先のコードを実行します。
2
True / True / Assets/TestScene2.unity
False / False / Assets/TestScene1.unity
このようにTestScene1
のisLoaded
がfalseになります。
まとめ
- ヒエラルキーに存在しているとSetupSceneにカウントされる
- Load or Unload状態の有無でSetupSceneのisLoadedが変化する
- GetSceneManagerSetupはエディットモード中しか動かない
Unity5.3から導入されているマルチシーンエディットを調べるついでにこの記事を書いています。
本格的に使ったことはないですが、マルチシーンの実績もちらほらネット上には出てきているのでUnity5 マルチシーン編集によるUI開発事例 | enish engineering blog、運用で便利になりそうであれば積極的に使ってみたいところです。
もう少し調べてみます。
この記事が気に入ったらフォローしよう
オススメ記事
検証環境
- Unity2017.1.0f3