この記事でのバージョン
Unity 2018.3.7f1
はじめに
今回はタイトル通り、ビルド(Scenes in Build)に含まれていないシーンをロードする方法のご紹介です。
もちろんビルドに含まれていないシーンなので、実機上ではなくエディタ拡張の話になります。
なお、Unity2018.3以降の機能なのであしからず。
ちなみに、これを使ったエディタ拡張である
プロジェクト内にある全シーンを表示し、任意のシーンの再生や読み込み、選択が簡単に出来る拡張機能
を以前紹介していたりします。
EditorSceneManager
ゲーム中にシーンのロードを行う時は
UnityEngine.SceneManagement.SceneManagerの
LoadScene(Async)を使いますが、
SceneManager.LoadScene("Game");
これはビルド(Scenes in Build)に含まれてるシーンしかロード出来ません。
なので、ビルドに含まれていないシーンをロードしたい時は
UnityEditor.SceneManagement.EditorSceneManagerの
のLoadScene(Async)InPlayModeを使います。
ただし、SceneManager.LoadSceneとは違い、
Assetsからのパス(拡張子付き)でシーンファイルを指定する必要があるのと、
どうロードするかのパラメータLoadSceneParametersが必須という点には注意が必要です。
var scenePath = "Assets/Scenes/Demo.asset"; var parameter = new LoadSceneParameters(LoadSceneMode.Single); EditorSceneManager.LoadSceneInPlayMode(scenePath, parameter);
なお、ビルドに含まれているシーンであっても、もちろんロード可能です。