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();
            }
        }
示例#2
0
 public static GUIContent SceneGUIContent(string path)
 {
     return(new GUIContent(" " + SsmUtility.SceneFileName(path), $"Open {path}"));
 }