読者です 読者をやめる 読者になる 読者になる

デジタルフロッグ

Unityのアプリの開発をしながらいろいろと忘れないための備忘録でございます。

シーンを追加してアクティブを切り替える流れ。

    IEnumerator AddScene()
    {
        //シーンを非同期で追加する
        SceneManager.LoadScene( "Scene Name", LoadSceneMode.Additive);
        //シーン名を指定する
        Scene scene = SceneManager.GetSceneByName("Scene Name");
        while ( !scene.isLoaded )
        {
            yield return null;
        }
        //指定したシーン名をアクティブにする
        SceneManager.SetActiveScene( scene );
    }


コルーチンで実装をしたのですが、whileを入れないとシーンの読み込みが完了する前にアクティブを切り替えようとしてしまってうまくアクティブの切り替えが出来なかったのでコルーチンで処理をするようにしました。

次のシーンに移った時にデータを渡したい時や一時的に別のシーンを重ねて表示させたい時などに使えます。
もしも重ねるだけで重ねたシーンで何か変更を加えるという事がないのであればシーンのアクティブを切り替える必要性はないとは思います。

ちなみに…

SceneManager.UnloadScene( "Scene Name" )

これでシーンのアンロードが行えますので必要なければ削除してしまいましょう。