EditorでPlaymode移行時にシーン遷移する
2020/10/09
Unity
Editor
UnityEditorで再生ボタンを押したときにシーン遷移する実装。 主にデバッグ時にBootシーンを通すために使う。
環境
- Unity 2020.1.3f1
実装
using UnityEditor;
using UnityEngine;
using UnityEngine.SceneManagement;
/// <summary>
/// EditorでPlaymodeに移行したときBootSceneに遷移する
/// </summary>
[InitializeOnLoad]
public static class PlayModeToBootScene
{
static PlayModeToBootScene()
{
Debug.Log("Setup PlayModeToBootScene");
EditorApplication.playModeStateChanged += TransitionToBootScene;
}
/// <summary>
/// Playmode移行時BootSceneに遷移する
/// </summary>
/// <param name="state"></param>
private static void TransitionToBootScene(PlayModeStateChange state)
{
const string SceneName = "BootScene";
if(state == PlayModeStateChange.EnteredPlayMode)
{
if(SceneManager.GetActiveScene().name != SceneName)
{
SceneManager.LoadScene(SceneName);
}
}
}
}
InitializeOnLoadAttribute
はstaticコンストラクタを持つクラスに付けることでEditor起動時に確実に呼び出される。
シーン遷移は現在のシーンロード後に呼び出されるので、現在のシーンの起動時処理は実行されてしまうことに留意する。 シーンが独立して動作するように設計しようね。