Unity 2017.1 から追加された EditorSceneManager.playModeStartScene
を利用することで
UnityEditor で Play を押した際に別シーンだったとしても、指定したシーンから再生することが可能になる
Unity - Scripting API: SceneManagement.EditorSceneManager.playModeStartScene
使い方
SceneAsset
をロードしてきてそれを渡してやれば、再生できるようになります
また、null を入れることで指定を解除することができます
var startScene = AssetDatabase.LoadAssetAtPath<SceneAsset>(path); EditorSceneManager.playModeStartScene = startScene;
サンプル
using UnityEditor; using UnityEditor.SceneManagement; using UnityEngine; public class PlaySceneEditorWindow : EditorWindow { [MenuItem("Tools/SetStartScene")] private static void ShowWindow() { var window = GetWindow<PlaySceneEditorWindow>(); window.titleContent = new GUIContent("Start Scene"); window.Show(); } private SceneAsset _startScene; private void OnEnable() { _startScene = EditorSceneManager.playModeStartScene; } private void OnGUI() { using (var check = new EditorGUI.ChangeCheckScope()) { _startScene = (SceneAsset) EditorGUILayout.ObjectField("StartSecen", _startScene, typeof(SceneAsset)); if (check.changed) { EditorSceneManager.playModeStartScene = _startScene; } } // Start Scene を削除 using (new EditorGUI.DisabledScope(_startScene == null)) { if (GUILayout.Button("Reset Start Scene")) { EditorSceneManager.playModeStartScene = null; } } } }