From c5335078dfc767145753a5fc85f3f39363ab366e Mon Sep 17 00:00:00 2001 From: SepComet <202308010230@stu.csust.edu.cn> Date: Sun, 14 Jun 2026 14:53:11 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=B9=20SelectRoleController=20=E6=8C=89=20?= =?UTF-8?q?5=20=E5=B1=82=20UI=20=E8=A7=84=E8=8C=83=E7=9A=84=E5=81=9A?= =?UTF-8?q?=E4=B8=80=E8=BD=AE=E6=AE=8B=E7=95=99=E6=B8=85=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 死方法清理: -删除SelectRoleController.UpdateShowRole(RolePropertyAreaContext)。该方法没有任何调用方:hover 切换走 OnSelectRoleHoverAsync 全量重建 RawData / Context,SelectRoleForm.prefab 上的 "UpdateShowRole" 绑定指向 RoleItem.UpdateShowRole(),与 Controller 同名方法无关。 - 同步把 SelectRoleForm.UpdateShowRole(bool, RolePropertyAreaContext) 收为 private,只保留 RefreshUI 内部调用入口。 日志 tag 修正: - BindUseCase 的 Log.Error tag 由 "SelectRoleUseCase.BindUseCase()" 改回 "SelectRoleController.BindUseCase()"。 - OnSelectRoleHoverAsync 的 Log.Error tag 由 "SelectRoleController.OnMenuSelectRoleSelected()" 改为 "SelectRoleController.OnSelectRoleHoverAsync()",与方法名对齐。 handler 命名收敛(§6.3): - OnMenuSelectRoleConfirm → OnSelectRoleConfirm,订阅 / 解订阅 /方法体内日志 tag 全部同步,与 OnSelectRoleReturn / OnSelectRoleHover 命名一致。 风格统一: - OnSelectRoleReturn 的 sender 校验改为 IsCurrentFormEventSender,与 Hover / Confirm 路径保持一致;原先的窄校验 (sender is SelectRoleForm && sender == Form)语义不变,只是不再让两套写法并存。 - OpenUIAsync(SelectRoleRawData, float) 返回值由 UniTask 简化为 UniTask:全代码无人消费 serialId,基类抽象签名也是 UniTask,这条便利入口跟着对齐。 --- .../Menu/SelectRole/SelectRoleController.cs | 34 ++++++------------- .../Menu/SelectRole/SelectRoleForm.cs | 2 +- 2 files changed, 11 insertions(+), 25 deletions(-) diff --git a/Assets/GameMain/Scripts/Presentation/Menu/SelectRole/SelectRoleController.cs b/Assets/GameMain/Scripts/Presentation/Menu/SelectRole/SelectRoleController.cs index dbd7125..4872c80 100644 --- a/Assets/GameMain/Scripts/Presentation/Menu/SelectRole/SelectRoleController.cs +++ b/Assets/GameMain/Scripts/Presentation/Menu/SelectRole/SelectRoleController.cs @@ -23,14 +23,14 @@ namespace SepCore.UI { GameEntry.Event.Subscribe(SelectRoleReturnEventArgs.EventId, OnSelectRoleReturn); GameEntry.Event.Subscribe(SelectRoleHoverEventArgs.EventId, OnSelectRoleHover); - GameEntry.Event.Subscribe(SelectRoleConfirmEventArgs.EventId, OnMenuSelectRoleConfirm); + GameEntry.Event.Subscribe(SelectRoleConfirmEventArgs.EventId, OnSelectRoleConfirm); } protected override void UnsubscribeCustomEvents() { GameEntry.Event.Unsubscribe(SelectRoleReturnEventArgs.EventId, OnSelectRoleReturn); GameEntry.Event.Unsubscribe(SelectRoleHoverEventArgs.EventId, OnSelectRoleHover); - GameEntry.Event.Unsubscribe(SelectRoleConfirmEventArgs.EventId, OnMenuSelectRoleConfirm); + GameEntry.Event.Unsubscribe(SelectRoleConfirmEventArgs.EventId, OnSelectRoleConfirm); } private static SelectRoleContext BuildContext(SelectRoleRawData rawData) @@ -96,37 +96,23 @@ namespace SepCore.UI await OpenUIAsync(initialRawData, timeout); } - public async UniTask OpenUIAsync(SelectRoleRawData rawData, float timeout = 30f) + public async UniTask OpenUIAsync(SelectRoleRawData rawData, float timeout = 30f) { SelectRoleContext context = BuildContext(rawData); - return await OpenFormAsync(context, timeout); + await OpenFormAsync(context, timeout); } public override void BindUseCase(IUIUseCase useCase) { if (useCase is not SelectRoleUseCase selectRoleUseCase) { - Log.Error("SelectRoleUseCase.BindUseCase() useCase is invalid."); + Log.Error("SelectRoleController.BindUseCase() useCase is invalid."); return; } _useCase = selectRoleUseCase; } - public void UpdateShowRole(RolePropertyAreaContext rolePropertyAreaContext) - { - if (Context == null) - { - Log.Error("SelectRoleController.UpdateShowRole() Context is null."); - return; - } - - Context.RolePropertyAreaContext = rolePropertyAreaContext; - Context.ShowRoleProperty = rolePropertyAreaContext != null; - - Form?.UpdateShowRole(Context.ShowRoleProperty, rolePropertyAreaContext); - } - private bool IsCurrentFormEventSender(object sender) { if (sender is SelectRoleForm selectRoleForm) @@ -144,12 +130,12 @@ namespace SepCore.UI private void OnSelectRoleReturn(object sender, GameEventArgs e) { - if (sender is not SelectRoleForm selectRoleForm || selectRoleForm != Form) + if (e is not SelectRoleReturnEventArgs) { return; } - if (e is not SelectRoleReturnEventArgs) + if (!IsCurrentFormEventSender(sender)) { return; } @@ -176,7 +162,7 @@ namespace SepCore.UI { if (_useCase == null) { - Log.Error("SelectRoleController.OnMenuSelectRoleSelected() useCase is null."); + Log.Error("SelectRoleController.OnSelectRoleHoverAsync() useCase is null."); return; } @@ -184,7 +170,7 @@ namespace SepCore.UI await OpenUIAsync(rawData); } - private void OnMenuSelectRoleConfirm(object sender, GameEventArgs e) + private void OnSelectRoleConfirm(object sender, GameEventArgs e) { if (e is not SelectRoleConfirmEventArgs) { @@ -198,7 +184,7 @@ namespace SepCore.UI if (_useCase == null) { - Log.Error("SelectRoleController.OnMenuSelectRoleConfirm() useCase is null."); + Log.Error("SelectRoleController.OnSelectRoleConfirm() useCase is null."); return; } diff --git a/Assets/GameMain/Scripts/Presentation/Menu/SelectRole/SelectRoleForm.cs b/Assets/GameMain/Scripts/Presentation/Menu/SelectRole/SelectRoleForm.cs index 903d188..ad7ec2c 100644 --- a/Assets/GameMain/Scripts/Presentation/Menu/SelectRole/SelectRoleForm.cs +++ b/Assets/GameMain/Scripts/Presentation/Menu/SelectRole/SelectRoleForm.cs @@ -76,7 +76,7 @@ namespace SepCore.UI #endregion - public void UpdateShowRole(bool showRoleProperty, RolePropertyAreaContext propertyAreaContext) + private void UpdateShowRole(bool showRoleProperty, RolePropertyAreaContext propertyAreaContext) { if (!showRoleProperty) {