👻
エディタで再生中にBuildSettingsに含まれないシーンを読み込む
通常、Unityでシーンを読み込むには、BuildSettingsにシーンを追加する必要がありますが、テスト用のシーンなど、エディタのみで再生したいシーンはBuildSettingsに含みたくない場合があります。そのような時は、EditorSceneManager.LoadSceneInPlayModeを使います。
public void LoadScene(string sceneName)
{
#if UNITY_EDITOR
// シーン名でシーンのGUIDを検索する。
var guid = AssetDatabase.FindAssets($"{sceneName} t:scene")[0];
// GUIDからパスを調べる。
var path = AssetDatabase.GUIDToAssetPath(guid);
Debug.Log(path); // 例: Assets/FooScene.unity
// パスを指定してシーンを読み込む。
EditorSceneManager.LoadSceneInPlayMode(path, new LoadSceneParameters(LoadSceneMode.Single));
#else
SceneManager.LoadScene(sceneName);
#endif
}
LoadSceneModeで、既存のシーンを破棄するか、新たなシーンを追加で読み込むか選択できます。
LoadSceneMode | 機能 |
---|---|
Single | 既存のシーンを破棄してシーンを読み込む |
Additive | 現在のシーンに追加でシーンを読み込む |
LoadSceneAsyncInPlayModeという非同期読み込み用のメソッドもあります。
Discussion