【Unity】上部メニューから一時的に別シーンに遷移してプレイモードに入る

背景

別のシーンでUIを作っている時に、タイトル画面からテストプレイをする際、毎回タイトルのシーンを開いてプレイモードに入るのが面倒くさい。

実装内容

上部メニューにTestメニューを作成し、押下するとTitleシーンを開く設定でPlayモードに入るようにする。

コード

using UnityEngine;
using UnityEditor;
using UnityEditor.SceneManagement;

public class QuickStart : MonoBehaviour
{
    private static string ScenePath = "Assets/Scenes/Title.unity";
    
    [MenuItem("Test/テストプレイ開始")]
    private static void LoadTitleScene()
    {
        SceneAsset scene = AssetDatabase.LoadAssetAtPath<SceneAsset>(ScenePath);
        
        EditorSceneManager.playModeStartScene = scene;
        EditorApplication.isPlaying = true;

        EditorApplication.playModeStateChanged += StateChangeEvent;
    }

    /// <summary>
    /// Editorのプレイモードステートが変更した時に呼ばれる処理
    /// </summary>
    /// <param name="playModeStateChange"></param>
    private static void StateChangeEvent(PlayModeStateChange playModeStateChange)
    {
        if (playModeStateChange == PlayModeStateChange.ExitingPlayMode)
        {
            EditorSceneManager.playModeStartScene = null;
        }
    }
}