From 40f0e1e6d9a8dbc8b4c17c7061af3e050cc43f02 Mon Sep 17 00:00:00 2001 From: shenjianxing <”315615051@qq.com“> Date: Tue, 18 Feb 2025 17:23:30 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=BC=BA=E5=88=B6main?= =?UTF-8?q?=E5=9C=BA=E6=99=AF=E5=90=AF=E5=8A=A8=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Scripts/Editor/FixedMainEditor.cs | 35 +++++++++++++++++++ Assets/Scripts/Editor/FixedMainEditor.cs.meta | 11 ++++++ Assets/Scripts/Editor/OpeanCustomScene.cs | 17 +++++---- 3 files changed, 56 insertions(+), 7 deletions(-) create mode 100644 Assets/Scripts/Editor/FixedMainEditor.cs create mode 100644 Assets/Scripts/Editor/FixedMainEditor.cs.meta 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