From 8b715ffc8ea0675198b76b3adaffc2f28614ade1 Mon Sep 17 00:00:00 2001 From: Alex-Rachel <574809918@qq.com> Date: Mon, 24 Mar 2025 19:11:51 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9ESetting=E9=9D=A2=E6=9D=BF?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新增Setting面板设置 --- .../Editor/TEngineSettingsProvider.meta | 8 +++++ .../TEngineSettingsProvider.cs | 36 +++++++++++++++++++ .../TEngineSettingsProvider.cs.meta | 11 ++++++ .../TEngineUISettingsProvider.cs | 32 +++++++++++++++++ .../TEngineUISettingsProvider.cs.meta | 3 ++ 5 files changed, 90 insertions(+) create mode 100644 UnityProject/Assets/Editor/TEngineSettingsProvider.meta create mode 100644 UnityProject/Assets/Editor/TEngineSettingsProvider/TEngineSettingsProvider.cs create mode 100644 UnityProject/Assets/Editor/TEngineSettingsProvider/TEngineSettingsProvider.cs.meta create mode 100644 UnityProject/Assets/Editor/TEngineSettingsProvider/TEngineUISettingsProvider.cs create mode 100644 UnityProject/Assets/Editor/TEngineSettingsProvider/TEngineUISettingsProvider.cs.meta diff --git a/UnityProject/Assets/Editor/TEngineSettingsProvider.meta b/UnityProject/Assets/Editor/TEngineSettingsProvider.meta new file mode 100644 index 00000000..fd9d1249 --- /dev/null +++ b/UnityProject/Assets/Editor/TEngineSettingsProvider.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cace8d5078f400048a8afde10e2bf41d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnityProject/Assets/Editor/TEngineSettingsProvider/TEngineSettingsProvider.cs b/UnityProject/Assets/Editor/TEngineSettingsProvider/TEngineSettingsProvider.cs new file mode 100644 index 00000000..9e87336b --- /dev/null +++ b/UnityProject/Assets/Editor/TEngineSettingsProvider/TEngineSettingsProvider.cs @@ -0,0 +1,36 @@ +using TEngine; +using UnityEditor; + +public static class TEngineSettingsProvider +{ + [MenuItem("TEngine/Settings/TEngine UpdateSettings", priority = -1)] + public static void OpenSettings() => SettingsService.OpenProjectSettings("Project/TEngine/UpdateSettings"); + + private const string SettingsPath = "Project/TEngine/UpdateSettings"; + + [SettingsProvider] + public static SettingsProvider CreateMySettingsProvider() + { + return new SettingsProvider(SettingsPath, SettingsScope.Project) + { + label = "TEngine/UpdateSettings", + guiHandler = (searchContext) => + { + var settings = Settings.UpdateSetting; + var serializedObject = new SerializedObject(settings); + + EditorGUILayout.PropertyField(serializedObject.FindProperty("projectName")); + EditorGUILayout.PropertyField(serializedObject.FindProperty("HotUpdateAssemblies")); + EditorGUILayout.PropertyField(serializedObject.FindProperty("AOTMetaAssemblies")); + EditorGUILayout.PropertyField(serializedObject.FindProperty("LogicMainDllName")); + EditorGUILayout.PropertyField(serializedObject.FindProperty("AssemblyTextAssetExtension")); + EditorGUILayout.PropertyField(serializedObject.FindProperty("AssemblyTextAssetPath")); + EditorGUILayout.PropertyField(serializedObject.FindProperty("UpdateStyle")); + EditorGUILayout.PropertyField(serializedObject.FindProperty("ResDownLoadPath")); + EditorGUILayout.PropertyField(serializedObject.FindProperty("FallbackResDownLoadPath")); + serializedObject.ApplyModifiedProperties(); + }, + keywords = new[] { "TEngine", "Settings", "Custom" } + }; + } +} diff --git a/UnityProject/Assets/Editor/TEngineSettingsProvider/TEngineSettingsProvider.cs.meta b/UnityProject/Assets/Editor/TEngineSettingsProvider/TEngineSettingsProvider.cs.meta new file mode 100644 index 00000000..0750eb5a --- /dev/null +++ b/UnityProject/Assets/Editor/TEngineSettingsProvider/TEngineSettingsProvider.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f1c738d23f551c84e9e12af687389aeb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnityProject/Assets/Editor/TEngineSettingsProvider/TEngineUISettingsProvider.cs b/UnityProject/Assets/Editor/TEngineSettingsProvider/TEngineUISettingsProvider.cs new file mode 100644 index 00000000..de6a7ab6 --- /dev/null +++ b/UnityProject/Assets/Editor/TEngineSettingsProvider/TEngineUISettingsProvider.cs @@ -0,0 +1,32 @@ +using TEngine.Editor.UI; +using UnityEditor; + +public static class TEngineUISettingsProvider +{ + [MenuItem("TEngine/Settings/TEngineUISettings", priority = -1)] + public static void OpenSettings() => SettingsService.OpenProjectSettings("Project/TEngine/UISettings"); + + private const string SettingsPath = "Project/TEngine/UISettings"; + + [SettingsProvider] + public static SettingsProvider CreateMySettingsProvider() + { + return new SettingsProvider(SettingsPath, SettingsScope.Project) + { + label = "TEngine/UISettings", + guiHandler = (searchContext) => + { + var scriptGeneratorSetting = ScriptGeneratorSetting.Instance; + var scriptGenerator = new SerializedObject(scriptGeneratorSetting); + + EditorGUILayout.PropertyField(scriptGenerator.FindProperty("_codePath")); + EditorGUILayout.PropertyField(scriptGenerator.FindProperty("_namespace")); + EditorGUILayout.PropertyField(scriptGenerator.FindProperty("_widgetName")); + EditorGUILayout.PropertyField(scriptGenerator.FindProperty("CodeStyle")); + EditorGUILayout.PropertyField(scriptGenerator.FindProperty("scriptGenerateRule")); + scriptGenerator.ApplyModifiedProperties(); + }, + keywords = new[] { "TEngine", "Settings", "Custom" } + }; + } +} diff --git a/UnityProject/Assets/Editor/TEngineSettingsProvider/TEngineUISettingsProvider.cs.meta b/UnityProject/Assets/Editor/TEngineSettingsProvider/TEngineUISettingsProvider.cs.meta new file mode 100644 index 00000000..6cf578e8 --- /dev/null +++ b/UnityProject/Assets/Editor/TEngineSettingsProvider/TEngineUISettingsProvider.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 2672376ad13242bcb6869e90c4def052 +timeCreated: 1742814408 \ No newline at end of file