按 UI 五层规范重构 SelectRoleForm 并整理事件目录

- SelectRoleForm 五层归位:UseCase 改为构造注入 IProcedureMenu(新增 Runtime/ProcedureInterface),RawData 暴露原始 StatModifier[] 而非展示串,Controller 复用 ItemDescUtility 拼装属性文本,并修复 OpenUIAsync(object) 合法 RawData 分支缺少 return 的误报路径
- StatModifier 去展示职责:删除 _statTypeNames / ToString,富文本格式化下沉到 Presentation 层的 ItemDescUtility.Describe(StatModifier),CreatePropDescription 改用统一入口
  - 事件目录按 UIForm 归档:Base/Event/UI/Menu/* 拆解到 SelectRoleForm/ MenuForm/ DialogForm/ DisplayItemInfoForm/ Combat/ 等各自子目录,MenuSelectRoleReturnEventArgs 改名 SelectRoleReturnEventArgs,语义归属本 UI 模块
- IUIFormController → IUIController 改名,联动 UIControllerBase / UIRouterComponent / Editor
- 同步更新 docs/UI-5层架构设计规范.md 中相关示例与 MenuForm.prefab、ProcedureMenu 引用
This commit is contained in:
SepComet
2026-06-14 13:19:12 +08:00
parent dec18418f5
commit 8cf3802b9d
49 changed files with 128 additions and 117 deletions
@@ -0,0 +1,21 @@
using GameFramework;
using GameFramework.Event;
namespace SepCore.Event
{
public class MenuAboutButtonClickEventArgs : GameEventArgs
{
public static readonly int EventId = typeof(MenuAboutButtonClickEventArgs).GetHashCode();
public override int Id => EventId;
public static MenuAboutButtonClickEventArgs Create()
{
return ReferencePool.Acquire<MenuAboutButtonClickEventArgs>();
}
public override void Clear()
{
}
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: f58e49962f2db9140aaf209ca65dd2f9
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,21 @@
using GameFramework;
using GameFramework.Event;
namespace SepCore.Event
{
public class MenuFileButtonClickEventArgs : GameEventArgs
{
public static readonly int EventId = typeof(MenuFileButtonClickEventArgs).GetHashCode();
public override int Id => EventId;
public static MenuFileButtonClickEventArgs Create()
{
return ReferencePool.Acquire<MenuFileButtonClickEventArgs>();
}
public override void Clear()
{
}
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: e093cff04ac83fc47ae21bd659b338ad
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,21 @@
using GameFramework;
using GameFramework.Event;
namespace SepCore.Event
{
public class MenuGuideButtonClickEventArgs : GameEventArgs
{
public static readonly int EventId = typeof(MenuGuideButtonClickEventArgs).GetHashCode();
public override int Id => EventId;
public static MenuGuideButtonClickEventArgs Create()
{
return ReferencePool.Acquire<MenuGuideButtonClickEventArgs>();
}
public override void Clear()
{
}
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: b39712010e7085f428e9ef9727bda043
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,21 @@
using GameFramework;
using GameFramework.Event;
namespace SepCore.Event
{
public class MenuQuitButtonClickEventArgs : GameEventArgs
{
public static readonly int EventId = typeof(MenuQuitButtonClickEventArgs).GetHashCode();
public override int Id => EventId;
public static MenuQuitButtonClickEventArgs Create()
{
return ReferencePool.Acquire<MenuQuitButtonClickEventArgs>();
}
public override void Clear()
{
}
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: c008a5618fa012842992de55bef3791c
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,21 @@
using GameFramework;
using GameFramework.Event;
namespace SepCore.Event
{
public class MenuSettingButtonClickEventArgs : GameEventArgs
{
public static readonly int EventId = typeof(MenuSettingButtonClickEventArgs).GetHashCode();
public override int Id => EventId;
public static MenuSettingButtonClickEventArgs Create()
{
return ReferencePool.Acquire<MenuSettingButtonClickEventArgs>();
}
public override void Clear()
{
}
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: d5de2367f2bc83642bbbdc02081ae804
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,21 @@
using GameFramework;
using GameFramework.Event;
namespace SepCore.Event
{
public class MenuStartGameEventArgs : GameEventArgs
{
public static readonly int EventId = typeof(MenuStartGameEventArgs).GetHashCode();
public override int Id => EventId;
public static MenuStartGameEventArgs Create()
{
return ReferencePool.Acquire<MenuStartGameEventArgs>();
}
public override void Clear()
{
}
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 217b0022ddd4a4545a8d8e3d8158a967
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: