コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】Unity 再生時に Build Settings の先頭に登録されているシーンから開始するようにするエディタ拡張

ソースコード

using UnityEditor;
using UnityEditor.SceneManagement;

[InitializeOnLoad]
public static class Example
{
    static Example()
    {
        // Build Settings に登録されている
        // シーンの一覧が変更されたら呼び出される
        EditorBuildSettings.sceneListChanged += OnChange;

        OnChange();
    }

    private static void OnChange()
    {
        // Build Settings の先頭に登録されているシーンを
        var scenes = EditorBuildSettings.scenes;

        if ( scenes == null || scenes.Length <= 0 ) return;

        var path       = scenes[ 0 ].path;
        var sceneAsset = AssetDatabase.LoadAssetAtPath<SceneAsset>( path );
        
        // Unity 再生時に開始するシーンに登録する
        EditorSceneManager.playModeStartScene = sceneAsset;
    }
}

EditorSceneManager.playModeStartScene に SceneAsset 型でシーンを設定すると
Unity 再生時にそのシーンから開始されるようになる