private static void OnPlayModeStateChanged(PlayModeStateChange state) { if (state != PlayModeStateChange.EnteredPlayMode) { return; } if (!EditorPrefs.HasKey(SsmUtility.PlayModeSceneToResetKey)) { return; } string playModeSceneToReset = EditorPrefs.GetString(SsmUtility.PlayModeSceneToResetKey); if (playModeSceneToReset == "null") { EditorSceneManager.playModeStartScene = null; } else { foreach (EditorBuildSettingsScene settingsScene in EditorBuildSettings.scenes) { if (playModeSceneToReset != SsmUtility.SceneFileName(settingsScene)) { continue; } var sceneAsset = AssetDatabase.LoadAssetAtPath <SceneAsset>(settingsScene.path); EditorSceneManager.playModeStartScene = sceneAsset; break; } } EditorPrefs.DeleteKey(SsmUtility.PlayModeSceneToResetKey); if (IsOpen) { instance.Repaint(); } }
public static GUIContent SceneGUIContent(string path) { return(new GUIContent(" " + SsmUtility.SceneFileName(path), $"Open {path}")); }