diff --git a/Assets/Scripts/Editor/FixedMainEditor.cs b/Assets/Scripts/Editor/FixedMainEditor.cs new file mode 100644 index 00000000..44d2fa2c --- /dev/null +++ b/Assets/Scripts/Editor/FixedMainEditor.cs @@ -0,0 +1,35 @@ +using UnityEditor; +using UnityEngine; + +#if UNITY_EDITOR +public class FixedMainEditor +{ + private const string FixedMainKey = "IsFixedMain"; + public static bool isFixedMain + { + get + { + return PlayerPrefs.GetInt(FixedMainKey, 0) == 1; + } + set + { + PlayerPrefs.SetInt(FixedMainKey, value ? 1 : 0); + PlayerPrefs.Save(); + } + } + + [MenuItem("Tools/强制Main场景启动 %#x", false, 10)] + private static void ToggleOption() + { + isFixedMain = !isFixedMain; + EditorUtility.DisplayDialog("Option Status", "Option is now " + (isFixedMain ? "enabled" : "disabled"), "OK"); + } + + [MenuItem("Tools/强制Main场景启动 %#x", true, 10)] + private static bool ValidateToggleOption() + { + Menu.SetChecked("Tools/强制Main场景启动", isFixedMain); + return true; + } +} +#endif \ No newline at end of file diff --git a/Assets/Scripts/Editor/FixedMainEditor.cs.meta b/Assets/Scripts/Editor/FixedMainEditor.cs.meta new file mode 100644 index 00000000..43a4caf5 --- /dev/null +++ b/Assets/Scripts/Editor/FixedMainEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0b0b3735d5f7030428778c408124d2f8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Editor/OpeanCustomScene.cs b/Assets/Scripts/Editor/OpeanCustomScene.cs index 62663f53..f3557f64 100644 --- a/Assets/Scripts/Editor/OpeanCustomScene.cs +++ b/Assets/Scripts/Editor/OpeanCustomScene.cs @@ -1,17 +1,20 @@ -using System.Collections; -using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; - +#if UNITY_EDITOR public class OpeanCustomScene : MonoBehaviour { - [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)] + [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)] private static void Initialize() { - Scene scene = SceneManager.GetActiveScene(); - if (!scene.name.Equals("Main")) + Debug.LogError(FixedMainEditor.isFixedMain); + if (FixedMainEditor.isFixedMain) { - SceneManager.LoadScene("Main"); + Scene scene = SceneManager.GetActiveScene(); + if (!scene.name.Equals("Main")) + { + SceneManager.LoadScene("Main"); + } } } } +#endif \ No newline at end of file