UI脚本生成,区分UIWidget和UIWindow

This commit is contained in:
feng
2025-03-19 22:04:10 +08:00
parent 5210c1d36b
commit 2818edb575
2 changed files with 22 additions and 2 deletions

View File

@@ -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");
}

View File

@@ -181,5 +181,15 @@ namespace TEngine.Editor.UI
return Instance.CodePath;
}
public static string GetWidgetName()
{
if (Instance == null)
{
return string.Empty;
}
return Instance.WidgetName;
}
}
}