为随机角色卡补 hover 反向链路
新增 SelectRoleClearEventArgs:hover 随机卡时清空选中状态,让上方属性区回到 _randomRoleCard。 - SelectRoleForm.OnRandomHoverEnter 上报事件 - SelectRoleUseCase.ClearSelection 重置 SelectedRoleId 并重建 RawData - SelectRoleController 订阅事件并刷新 Context - SelectRoleForm.prefab 随机卡 _onPointerEnterAction 绑定新方法
This commit is contained in:
parent
0fb4ff01f9
commit
11621ee1c9
|
|
@ -0,0 +1,21 @@
|
|||
using GameFramework;
|
||||
using GameFramework.Event;
|
||||
|
||||
namespace SepCore.Event
|
||||
{
|
||||
public class SelectRoleClearEventArgs : GameEventArgs
|
||||
{
|
||||
public static readonly int EventId = typeof(SelectRoleClearEventArgs).GetHashCode();
|
||||
|
||||
public override int Id => EventId;
|
||||
|
||||
public static SelectRoleClearEventArgs Create()
|
||||
{
|
||||
return ReferencePool.Acquire<SelectRoleClearEventArgs>();
|
||||
}
|
||||
|
||||
public override void Clear()
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: af5e47498caf28f4bad0b19945197767
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -23,6 +23,7 @@ namespace SepCore.UI
|
|||
{
|
||||
GameEntry.Event.Subscribe(SelectRoleReturnEventArgs.EventId, OnSelectRoleReturn);
|
||||
GameEntry.Event.Subscribe(SelectRoleHoverEventArgs.EventId, OnSelectRoleHover);
|
||||
GameEntry.Event.Subscribe(SelectRoleClearEventArgs.EventId, OnSelectRoleClear);
|
||||
GameEntry.Event.Subscribe(SelectRoleConfirmEventArgs.EventId, OnSelectRoleConfirm);
|
||||
}
|
||||
|
||||
|
|
@ -30,6 +31,7 @@ namespace SepCore.UI
|
|||
{
|
||||
GameEntry.Event.Unsubscribe(SelectRoleReturnEventArgs.EventId, OnSelectRoleReturn);
|
||||
GameEntry.Event.Unsubscribe(SelectRoleHoverEventArgs.EventId, OnSelectRoleHover);
|
||||
GameEntry.Event.Unsubscribe(SelectRoleClearEventArgs.EventId, OnSelectRoleClear);
|
||||
GameEntry.Event.Unsubscribe(SelectRoleConfirmEventArgs.EventId, OnSelectRoleConfirm);
|
||||
}
|
||||
|
||||
|
|
@ -170,6 +172,33 @@ namespace SepCore.UI
|
|||
await OpenUIAsync(rawData);
|
||||
}
|
||||
|
||||
private void OnSelectRoleClear(object sender, GameEventArgs e)
|
||||
{
|
||||
if (e is not SelectRoleClearEventArgs)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (!IsCurrentFormEventSender(sender))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
OnSelectRoleClearAsync().Forget();
|
||||
}
|
||||
|
||||
private async UniTaskVoid OnSelectRoleClearAsync()
|
||||
{
|
||||
if (_useCase == null)
|
||||
{
|
||||
Log.Error("SelectRoleController.OnSelectRoleClearAsync() useCase is null.");
|
||||
return;
|
||||
}
|
||||
|
||||
SelectRoleRawData rawData = _useCase.ClearSelection();
|
||||
await OpenUIAsync(rawData);
|
||||
}
|
||||
|
||||
private void OnSelectRoleConfirm(object sender, GameEventArgs e)
|
||||
{
|
||||
if (e is not SelectRoleConfirmEventArgs)
|
||||
|
|
|
|||
|
|
@ -98,5 +98,10 @@ namespace SepCore.UI
|
|||
{
|
||||
GameEntry.Event.Fire(this, SelectRoleConfirmEventArgs.Create());
|
||||
}
|
||||
|
||||
public void OnRandomHoverEnter()
|
||||
{
|
||||
GameEntry.Event.Fire(this, SelectRoleClearEventArgs.Create());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,6 +30,12 @@ namespace SepCore.UI
|
|||
return BuildModel(roleId);
|
||||
}
|
||||
|
||||
public SelectRoleRawData ClearSelection()
|
||||
{
|
||||
SelectedRoleId = 0;
|
||||
return BuildModel(0);
|
||||
}
|
||||
|
||||
public bool ConfirmSelectedRole()
|
||||
{
|
||||
DRRole[] roles = _roleDataTable != null ? _roleDataTable.GetAllDataRows() : null;
|
||||
|
|
|
|||
|
|
@ -748,7 +748,7 @@ GameObject:
|
|||
- component: {fileID: 402127537566038992}
|
||||
- component: {fileID: 7266142669901275671}
|
||||
m_Layer: 5
|
||||
m_Name: RoleItem
|
||||
m_Name: RandomRole
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
|
|
@ -843,6 +843,18 @@ MonoBehaviour:
|
|||
m_StringArgument:
|
||||
m_BoolArgument: 0
|
||||
m_CallState: 2
|
||||
- m_Target: {fileID: 7510942500789349387}
|
||||
m_TargetAssemblyTypeName: SepCore.UI.SelectRoleForm, SepCore.Presentation
|
||||
m_MethodName: OnRandomHoverEnter
|
||||
m_Mode: 1
|
||||
m_Arguments:
|
||||
m_ObjectArgument: {fileID: 0}
|
||||
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
|
||||
m_IntArgument: 0
|
||||
m_FloatArgument: 0
|
||||
m_StringArgument:
|
||||
m_BoolArgument: 0
|
||||
m_CallState: 2
|
||||
_onClickAction:
|
||||
m_PersistentCalls:
|
||||
m_Calls:
|
||||
|
|
@ -2729,7 +2741,7 @@ PrefabInstance:
|
|||
type: 3}
|
||||
propertyPath: _onPointerEnterAction.m_PersistentCalls.m_Calls.Array.data[1].m_Target
|
||||
value:
|
||||
objectReference: {fileID: 5201218836764882073}
|
||||
objectReference: {fileID: 4965267041341936459}
|
||||
- target: {fileID: 3813327180119752992, guid: 78595a129d0438c44b2d52720e9c0edd,
|
||||
type: 3}
|
||||
propertyPath: _onPointerEnterAction.m_PersistentCalls.m_Calls.Array.data[1].m_CallState
|
||||
|
|
@ -2965,7 +2977,7 @@ PrefabInstance:
|
|||
type: 3}
|
||||
propertyPath: _onPointerEnterAction.m_PersistentCalls.m_Calls.Array.data[1].m_Target
|
||||
value:
|
||||
objectReference: {fileID: 5201218836764882073}
|
||||
objectReference: {fileID: 8836415805828564547}
|
||||
- target: {fileID: 3813327180119752992, guid: 78595a129d0438c44b2d52720e9c0edd,
|
||||
type: 3}
|
||||
propertyPath: _onPointerEnterAction.m_PersistentCalls.m_Calls.Array.data[1].m_CallState
|
||||
|
|
@ -3201,7 +3213,7 @@ PrefabInstance:
|
|||
type: 3}
|
||||
propertyPath: _onPointerEnterAction.m_PersistentCalls.m_Calls.Array.data[1].m_Target
|
||||
value:
|
||||
objectReference: {fileID: 5201218836764882073}
|
||||
objectReference: {fileID: 7249589387663696490}
|
||||
- target: {fileID: 3813327180119752992, guid: 78595a129d0438c44b2d52720e9c0edd,
|
||||
type: 3}
|
||||
propertyPath: _onPointerEnterAction.m_PersistentCalls.m_Calls.Array.data[1].m_CallState
|
||||
|
|
@ -3432,7 +3444,7 @@ PrefabInstance:
|
|||
type: 3}
|
||||
propertyPath: _onPointerEnterAction.m_PersistentCalls.m_Calls.Array.data[1].m_Target
|
||||
value:
|
||||
objectReference: {fileID: 5201218836764882073}
|
||||
objectReference: {fileID: 7108998779798040682}
|
||||
- target: {fileID: 3813327180119752992, guid: 78595a129d0438c44b2d52720e9c0edd,
|
||||
type: 3}
|
||||
propertyPath: _onPointerEnterAction.m_PersistentCalls.m_Calls.Array.data[1].m_CallState
|
||||
|
|
@ -3932,7 +3944,7 @@ PrefabInstance:
|
|||
type: 3}
|
||||
propertyPath: _onPointerEnterAction.m_PersistentCalls.m_Calls.Array.data[1].m_Target
|
||||
value:
|
||||
objectReference: {fileID: 5201218836764882073}
|
||||
objectReference: {fileID: 1254353399428518429}
|
||||
- target: {fileID: 3813327180119752992, guid: 78595a129d0438c44b2d52720e9c0edd,
|
||||
type: 3}
|
||||
propertyPath: _onPointerEnterAction.m_PersistentCalls.m_Calls.Array.data[1].m_CallState
|
||||
|
|
@ -4163,7 +4175,7 @@ PrefabInstance:
|
|||
type: 3}
|
||||
propertyPath: _onPointerEnterAction.m_PersistentCalls.m_Calls.Array.data[1].m_Target
|
||||
value:
|
||||
objectReference: {fileID: 5201218836764882073}
|
||||
objectReference: {fileID: 1271290373848557919}
|
||||
- target: {fileID: 3813327180119752992, guid: 78595a129d0438c44b2d52720e9c0edd,
|
||||
type: 3}
|
||||
propertyPath: _onPointerEnterAction.m_PersistentCalls.m_Calls.Array.data[1].m_CallState
|
||||
|
|
@ -4394,7 +4406,7 @@ PrefabInstance:
|
|||
type: 3}
|
||||
propertyPath: _onPointerEnterAction.m_PersistentCalls.m_Calls.Array.data[1].m_Target
|
||||
value:
|
||||
objectReference: {fileID: 5201218836764882073}
|
||||
objectReference: {fileID: 319567477725180536}
|
||||
- target: {fileID: 3813327180119752992, guid: 78595a129d0438c44b2d52720e9c0edd,
|
||||
type: 3}
|
||||
propertyPath: _onPointerEnterAction.m_PersistentCalls.m_Calls.Array.data[1].m_CallState
|
||||
|
|
@ -4625,7 +4637,7 @@ PrefabInstance:
|
|||
type: 3}
|
||||
propertyPath: _onPointerEnterAction.m_PersistentCalls.m_Calls.Array.data[1].m_Target
|
||||
value:
|
||||
objectReference: {fileID: 5201218836764882073}
|
||||
objectReference: {fileID: 4146823842836454614}
|
||||
- target: {fileID: 3813327180119752992, guid: 78595a129d0438c44b2d52720e9c0edd,
|
||||
type: 3}
|
||||
propertyPath: _onPointerEnterAction.m_PersistentCalls.m_Calls.Array.data[1].m_CallState
|
||||
|
|
@ -4856,7 +4868,7 @@ PrefabInstance:
|
|||
type: 3}
|
||||
propertyPath: _onPointerEnterAction.m_PersistentCalls.m_Calls.Array.data[1].m_Target
|
||||
value:
|
||||
objectReference: {fileID: 5201218836764882073}
|
||||
objectReference: {fileID: 3893566779691405690}
|
||||
- target: {fileID: 3813327180119752992, guid: 78595a129d0438c44b2d52720e9c0edd,
|
||||
type: 3}
|
||||
propertyPath: _onPointerEnterAction.m_PersistentCalls.m_Calls.Array.data[1].m_CallState
|
||||
|
|
|
|||
|
|
@ -261,10 +261,10 @@ MonoBehaviour:
|
|||
_onClickAction:
|
||||
m_PersistentCalls:
|
||||
m_Calls:
|
||||
- m_Target: {fileID: 0}
|
||||
m_TargetAssemblyTypeName: UI.UGuiForm, Assembly-CSharp
|
||||
m_MethodName: PlayUISound
|
||||
m_Mode: 3
|
||||
- m_Target: {fileID: 6873972826773845199}
|
||||
m_TargetAssemblyTypeName: SepCore.UI.RoleItem, SepCore.Presentation
|
||||
m_MethodName: OnHoverEnter
|
||||
m_Mode: 1
|
||||
m_Arguments:
|
||||
m_ObjectArgument: {fileID: 0}
|
||||
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
|
||||
|
|
|
|||
Loading…
Reference in New Issue