From 2818edb57516434463a7f591a0e867d247b1f1d4 Mon Sep 17 00:00:00 2001 From: feng Date: Wed, 19 Mar 2025 22:04:10 +0800 Subject: [PATCH] =?UTF-8?q?UI=E8=84=9A=E6=9C=AC=E7=94=9F=E6=88=90=EF=BC=8C?= =?UTF-8?q?=E5=8C=BA=E5=88=86UIWidget=E5=92=8CUIWindow?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Editor/UIScriptGenerator/ScriptGenerator.cs | 14 ++++++++++++-- .../UIScriptGenerator/ScriptGeneratorSetting.cs | 10 ++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/UnityProject/Assets/Editor/UIScriptGenerator/ScriptGenerator.cs b/UnityProject/Assets/Editor/UIScriptGenerator/ScriptGenerator.cs index e28a4991..89bffc7e 100644 --- a/UnityProject/Assets/Editor/UIScriptGenerator/ScriptGenerator.cs +++ b/UnityProject/Assets/Editor/UIScriptGenerator/ScriptGenerator.cs @@ -60,8 +60,18 @@ namespace TEngine.Editor.UI strFile.Append("using TEngine;\n\n"); strFile.Append($"namespace {ScriptGeneratorSetting.GetUINameSpace()}\n"); strFile.Append("{\n"); - strFile.Append("\t[Window(UILayer.UI)]\n"); - strFile.Append("\tclass " + root.name + " : UIWindow\n"); + + var widgetPrefix = $"{(ScriptGeneratorSetting.GetCodeStyle() == UIFieldCodeStyle.MPrefix ? "m_" : "_")}{ScriptGeneratorSetting.GetWidgetName()}"; + if (root.name.StartsWith(widgetPrefix)) + { + strFile.Append("\tclass " + root.name.Replace(widgetPrefix, "") + " : UIWidget\n"); + } + else + { + strFile.Append("\t[Window(UILayer.UI)]\n"); + strFile.Append("\tclass " + root.name + " : UIWindow\n"); + } + strFile.Append("\t{\n"); } diff --git a/UnityProject/Assets/Editor/UIScriptGenerator/ScriptGeneratorSetting.cs b/UnityProject/Assets/Editor/UIScriptGenerator/ScriptGeneratorSetting.cs index aab9c6dc..24b33787 100644 --- a/UnityProject/Assets/Editor/UIScriptGenerator/ScriptGeneratorSetting.cs +++ b/UnityProject/Assets/Editor/UIScriptGenerator/ScriptGeneratorSetting.cs @@ -181,5 +181,15 @@ namespace TEngine.Editor.UI return Instance.CodePath; } + + public static string GetWidgetName() + { + if (Instance == null) + { + return string.Empty; + } + + return Instance.WidgetName; + } } } \ No newline at end of file