diff --git a/Assets/TEngine/Runtime/GameEvent/EventDispatcher.cs b/Assets/TEngine/Runtime/GameEvent/EventDispatcher.cs index f4db72d8..c3cf0078 100644 --- a/Assets/TEngine/Runtime/GameEvent/EventDispatcher.cs +++ b/Assets/TEngine/Runtime/GameEvent/EventDispatcher.cs @@ -3,6 +3,9 @@ using System.Collections.Generic; namespace TEngine { + /// + /// 游戏事件数据类。 + /// class EventDelegateData { private int m_eventType = 0; @@ -17,6 +20,11 @@ namespace TEngine m_eventType = evnetType; } + /// + /// 添加注册委托。 + /// + /// + /// public bool AddHandler(Delegate handler) { if (m_listExist.Contains(handler)) @@ -38,22 +46,29 @@ namespace TEngine return true; } - public void RmvHandler(Delegate hander) + /// + /// 移除反注册委托。 + /// + /// + public void RmvHandler(Delegate handler) { if (m_isExcute) { m_dirty = true; - m_deleteList.Add(hander); + m_deleteList.Add(handler); } else { - if (!m_listExist.Remove(hander)) + if (!m_listExist.Remove(handler)) { Log.Fatal("Delete handle failed, not exist, EventId: {0}", StringId.HashToString(m_eventType)); } } } + /// + /// 检测脏数据修正。 + /// private void CheckModify() { m_isExcute = false; @@ -75,14 +90,16 @@ namespace TEngine } } + /// + /// 回调调用。 + /// public void Callback() { m_isExcute = true; for (var i = 0; i < m_listExist.Count; i++) { var d = m_listExist[i]; - Action action = d as Action; - if (action != null) + if (d is Action action) { action(); } @@ -91,14 +108,18 @@ namespace TEngine CheckModify(); } - public void Callback(T arg1) + /// + /// 回调调用。 + /// + /// + /// + public void Callback(TArg1 arg1) { m_isExcute = true; for (var i = 0; i < m_listExist.Count; i++) { var d = m_listExist[i]; - var action = d as Action; - if (action != null) + if (d is Action action) { action(arg1); } @@ -107,14 +128,20 @@ namespace TEngine CheckModify(); } - public void Callback(T arg1, U arg2) + /// + /// 回调调用。 + /// + /// + /// + /// + /// + public void Callback(TArg1 arg1, TArg2 arg2) { m_isExcute = true; for (var i = 0; i < m_listExist.Count; i++) { var d = m_listExist[i]; - var action = d as Action; - if (action != null) + if (d is Action action) { action(arg1, arg2); } @@ -123,14 +150,22 @@ namespace TEngine CheckModify(); } - public void Callback(T arg1, U arg2, V arg3) + /// + /// 回调调用。 + /// + /// + /// + /// + /// + /// + /// + public void Callback(TArg1 arg1, TArg2 arg2, TArg3 arg3) { m_isExcute = true; for (var i = 0; i < m_listExist.Count; i++) { var d = m_listExist[i]; - var action = d as Action; - if (action != null) + if (d is Action action) { action(arg1, arg2, arg3); } @@ -139,14 +174,24 @@ namespace TEngine CheckModify(); } - public void Callback(T arg1, U arg2, V arg3, W arg4) + /// + /// 回调调用。 + /// + /// + /// + /// + /// + /// + /// + /// + /// + public void Callback(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4) { m_isExcute = true; for (var i = 0; i < m_listExist.Count; i++) { var d = m_listExist[i]; - var action = d as Action; - if (action != null) + if (d is Action action) { action(arg1, arg2, arg3, arg4); } @@ -155,14 +200,26 @@ namespace TEngine CheckModify(); } - public void Callback(T arg1, U arg2, V arg3, W arg4, X arg5) + /// + /// 回调调用。 + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + public void Callback(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5) { m_isExcute = true; for (var i = 0; i < m_listExist.Count; i++) { var d = m_listExist[i]; - var action = d as Action; - if (action != null) + if (d is Action action) { action(arg1, arg2, arg3, arg4, arg5); } @@ -173,18 +230,22 @@ namespace TEngine } /// - /// 封装消息的底层分发和注册 + /// 封装消息的底层分发和注册。 /// class EventDispatcher { static Dictionary m_eventTable = new Dictionary(); #region 事件管理接口 - + /// + /// 增加事件监听。 + /// + /// + /// + /// public bool AddEventListener(int eventType, Delegate handler) { - EventDelegateData data; - if (!m_eventTable.TryGetValue(eventType, out data)) + if (!m_eventTable.TryGetValue(eventType, out var data)) { data = new EventDelegateData(eventType); m_eventTable.Add(eventType, data); @@ -193,68 +254,118 @@ namespace TEngine return data.AddHandler(handler); } + /// + /// 移除事件监听。 + /// + /// + /// public void RemoveEventListener(int eventType, Delegate handler) { - EventDelegateData data; - if (m_eventTable.TryGetValue(eventType, out data)) + if (m_eventTable.TryGetValue(eventType, out var data)) { data.RmvHandler(handler); } } - #endregion #region 事件分发接口 - + /// + /// 发送事件。 + /// + /// 事件类型。 public void Send(int eventType) { - EventDelegateData d; - if (m_eventTable.TryGetValue(eventType, out d)) + if (m_eventTable.TryGetValue(eventType, out var d)) { d.Callback(); } } - public void Send(int eventType, T arg1) + /// + /// 发送事件。 + /// + /// + /// + /// + public void Send(int eventType, TArg1 arg1) { - EventDelegateData d; - if (m_eventTable.TryGetValue(eventType, out d)) + if (m_eventTable.TryGetValue(eventType, out var d)) { d.Callback(arg1); } } - public void Send(int eventType, T arg1, U arg2) + /// + /// 发送事件。 + /// + /// + /// + /// + /// + /// + public void Send(int eventType, TArg1 arg1, TArg2 arg2) { - EventDelegateData d; - if (m_eventTable.TryGetValue(eventType, out d)) + if (m_eventTable.TryGetValue(eventType, out var d)) { d.Callback(arg1, arg2); } } - public void Send(int eventType, T arg1, U arg2, V arg3) + /// + /// 发送事件。 + /// + /// + /// + /// + /// + /// + /// + /// + public void Send(int eventType, TArg1 arg1, TArg2 arg2, TArg3 arg3) { - EventDelegateData d; - if (m_eventTable.TryGetValue(eventType, out d)) + if (m_eventTable.TryGetValue(eventType, out var d)) { d.Callback(arg1, arg2, arg3); } } - public void Send(int eventType, T arg1, U arg2, V arg3, W arg4) + /// + /// 发送事件。 + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + public void Send(int eventType, TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4) { - EventDelegateData d; - if (m_eventTable.TryGetValue(eventType, out d)) + if (m_eventTable.TryGetValue(eventType, out var d)) { d.Callback(arg1, arg2, arg3, arg4); } } - public void Send(int eventType, T arg1, U arg2, V arg3, W arg4, X arg5) + /// + /// 发送事件。 + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + public void Send(int eventType, TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5) { - EventDelegateData d; - if (m_eventTable.TryGetValue(eventType, out d)) + if (m_eventTable.TryGetValue(eventType, out var d)) { d.Callback(arg1, arg2, arg3, arg4, arg5); } diff --git a/Assets/TEngine/Runtime/GameEvent/EventInterfaceAttribute.cs b/Assets/TEngine/Runtime/GameEvent/EventInterfaceAttribute.cs index 96de17c1..60ea21bf 100644 --- a/Assets/TEngine/Runtime/GameEvent/EventInterfaceAttribute.cs +++ b/Assets/TEngine/Runtime/GameEvent/EventInterfaceAttribute.cs @@ -5,12 +5,12 @@ namespace TEngine public enum EEventGroup { /// - /// UI相关的交互 + /// UI相关的交互。 /// GroupUI, /// - /// 逻辑层内部相关的交互 + /// 逻辑层内部相关的交互。 /// GroupLogic, } @@ -18,10 +18,10 @@ namespace TEngine [System.AttributeUsage(System.AttributeTargets.Interface)] public class EventInterface : Attribute { - public EEventGroup mGroup; + private EEventGroup _mGroup; public EventInterface(EEventGroup group) { - mGroup = group; + _mGroup = group; } } } diff --git a/Assets/TEngine/Runtime/GameEvent/EventMgr.cs b/Assets/TEngine/Runtime/GameEvent/EventMgr.cs index 9b8108e6..18578454 100644 --- a/Assets/TEngine/Runtime/GameEvent/EventMgr.cs +++ b/Assets/TEngine/Runtime/GameEvent/EventMgr.cs @@ -29,7 +29,7 @@ namespace TEngine } /// - /// 注册wrap的函数 + /// 注册wrap的函数。 /// /// /// @@ -42,9 +42,9 @@ namespace TEngine m_entry.Add(typeName, entry); } - public EventDispatcher GetDispatcher() - { - return m_dispatcher; - } + /// + /// 分发注册器。 + /// + public EventDispatcher Dispatcher => m_dispatcher; } } \ No newline at end of file diff --git a/Assets/TEngine/Runtime/GameEvent/GameEvent.cs b/Assets/TEngine/Runtime/GameEvent/GameEvent.cs index ddeaa453..f510cd3b 100644 --- a/Assets/TEngine/Runtime/GameEvent/GameEvent.cs +++ b/Assets/TEngine/Runtime/GameEvent/GameEvent.cs @@ -2,9 +2,12 @@ namespace TEngine { - public class GameEvent + /// + /// 游戏事件类。 + /// + public static class GameEvent { - private static EventMgr m_mgr = new EventMgr(); + private static readonly EventMgr EventMgr = new EventMgr(); public static void Init() { @@ -15,212 +18,212 @@ namespace TEngine public static bool AddEventListener(int eventType, Action handler) { - return m_mgr.GetDispatcher().AddEventListener(eventType, handler); + return EventMgr.Dispatcher.AddEventListener(eventType, handler); } - public static bool AddEventListener(int eventType, Action handler) + public static bool AddEventListener(int eventType, Action handler) { - return m_mgr.GetDispatcher().AddEventListener(eventType, handler); + return EventMgr.Dispatcher.AddEventListener(eventType, handler); } - public static bool AddEventListener(int eventType, Action handler) + public static bool AddEventListener(int eventType, Action handler) { - return m_mgr.GetDispatcher().AddEventListener(eventType, handler); + return EventMgr.Dispatcher.AddEventListener(eventType, handler); } - public static bool AddEventListener(int eventType, Action handler) + public static bool AddEventListener(int eventType, Action handler) { - return m_mgr.GetDispatcher().AddEventListener(eventType, handler); + return EventMgr.Dispatcher.AddEventListener(eventType, handler); } - public static bool AddEventListener(int eventType, Action handler) + public static bool AddEventListener(int eventType, Action handler) { - return m_mgr.GetDispatcher().AddEventListener(eventType, handler); + return EventMgr.Dispatcher.AddEventListener(eventType, handler); } - public static bool AddEventListener(int eventType, Action handler) + public static bool AddEventListener(int eventType, Action handler) { - return m_mgr.GetDispatcher().AddEventListener(eventType, handler); + return EventMgr.Dispatcher.AddEventListener(eventType, handler); } public static void RemoveEventListener(int eventType, Action handler) { - m_mgr.GetDispatcher().RemoveEventListener(eventType, handler); + EventMgr.Dispatcher.RemoveEventListener(eventType, handler); } - public static void RemoveEventListener(int eventType, Action handler) + public static void RemoveEventListener(int eventType, Action handler) { - m_mgr.GetDispatcher().RemoveEventListener(eventType, handler); + EventMgr.Dispatcher.RemoveEventListener(eventType, handler); } - public static void RemoveEventListener(int eventType, Action handler) + public static void RemoveEventListener(int eventType, Action handler) { - m_mgr.GetDispatcher().RemoveEventListener(eventType, handler); + EventMgr.Dispatcher.RemoveEventListener(eventType, handler); } - public static void RemoveEventListener(int eventType, Action handler) + public static void RemoveEventListener(int eventType, Action handler) { - m_mgr.GetDispatcher().RemoveEventListener(eventType, handler); + EventMgr.Dispatcher.RemoveEventListener(eventType, handler); } - public static void RemoveEventListener(int eventType, Action handler) + public static void RemoveEventListener(int eventType, Action handler) { - m_mgr.GetDispatcher().RemoveEventListener(eventType, handler); + EventMgr.Dispatcher.RemoveEventListener(eventType, handler); } - public static void RemoveEventListener(int eventType, Action handler) + public static void RemoveEventListener(int eventType, Action handler) { - m_mgr.GetDispatcher().RemoveEventListener(eventType, handler); + EventMgr.Dispatcher.RemoveEventListener(eventType, handler); } public static void RemoveEventListener(int eventType, Delegate handler) { - m_mgr.GetDispatcher().RemoveEventListener(eventType, handler); + EventMgr.Dispatcher.RemoveEventListener(eventType, handler); } //----------------------------string Event----------------------------// public static bool AddEventListener(string eventType, Action handler) { - return m_mgr.GetDispatcher().AddEventListener(StringId.StringToHash(eventType), handler); + return EventMgr.Dispatcher.AddEventListener(StringId.StringToHash(eventType), handler); } - public static bool AddEventListener(string eventType, Action handler) + public static bool AddEventListener(string eventType, Action handler) { - return m_mgr.GetDispatcher().AddEventListener(StringId.StringToHash(eventType), handler); + return EventMgr.Dispatcher.AddEventListener(StringId.StringToHash(eventType), handler); } - public static bool AddEventListener(string eventType, Action handler) + public static bool AddEventListener(string eventType, Action handler) { - return m_mgr.GetDispatcher().AddEventListener(StringId.StringToHash(eventType), handler); + return EventMgr.Dispatcher.AddEventListener(StringId.StringToHash(eventType), handler); } - public static bool AddEventListener(string eventType, Action handler) + public static bool AddEventListener(string eventType, Action handler) { - return m_mgr.GetDispatcher().AddEventListener(StringId.StringToHash(eventType), handler); + return EventMgr.Dispatcher.AddEventListener(StringId.StringToHash(eventType), handler); } - public static bool AddEventListener(string eventType, Action handler) + public static bool AddEventListener(string eventType, Action handler) { - return m_mgr.GetDispatcher().AddEventListener(StringId.StringToHash(eventType), handler); + return EventMgr.Dispatcher.AddEventListener(StringId.StringToHash(eventType), handler); } - public static bool AddEventListener(string eventType, Action handler) + public static bool AddEventListener(string eventType, Action handler) { - return m_mgr.GetDispatcher().AddEventListener(StringId.StringToHash(eventType), handler); + return EventMgr.Dispatcher.AddEventListener(StringId.StringToHash(eventType), handler); } public static void RemoveEventListener(string eventType, Action handler) { - m_mgr.GetDispatcher().RemoveEventListener(StringId.StringToHash(eventType), handler); + EventMgr.Dispatcher.RemoveEventListener(StringId.StringToHash(eventType), handler); } - public static void RemoveEventListener(string eventType, Action handler) + public static void RemoveEventListener(string eventType, Action handler) { - m_mgr.GetDispatcher().RemoveEventListener(StringId.StringToHash(eventType), handler); + EventMgr.Dispatcher.RemoveEventListener(StringId.StringToHash(eventType), handler); } - public static void RemoveEventListener(string eventType, Action handler) + public static void RemoveEventListener(string eventType, Action handler) { - m_mgr.GetDispatcher().RemoveEventListener(StringId.StringToHash(eventType), handler); + EventMgr.Dispatcher.RemoveEventListener(StringId.StringToHash(eventType), handler); } - public static void RemoveEventListener(string eventType, Action handler) + public static void RemoveEventListener(string eventType, Action handler) { - m_mgr.GetDispatcher().RemoveEventListener(StringId.StringToHash(eventType), handler); + EventMgr.Dispatcher.RemoveEventListener(StringId.StringToHash(eventType), handler); } - public static void RemoveEventListener(string eventType, Action handler) + public static void RemoveEventListener(string eventType, Action handler) { - m_mgr.GetDispatcher().RemoveEventListener(StringId.StringToHash(eventType), handler); + EventMgr.Dispatcher.RemoveEventListener(StringId.StringToHash(eventType), handler); } - public static void RemoveEventListener(string eventType, Action handler) + public static void RemoveEventListener(string eventType, Action handler) { - m_mgr.GetDispatcher().RemoveEventListener(StringId.StringToHash(eventType), handler); + EventMgr.Dispatcher.RemoveEventListener(StringId.StringToHash(eventType), handler); } public static void RemoveEventListener(string eventType, Delegate handler) { - m_mgr.GetDispatcher().RemoveEventListener(StringId.StringToHash(eventType), handler); + EventMgr.Dispatcher.RemoveEventListener(StringId.StringToHash(eventType), handler); } #endregion #region 分发消息接口 - public static T Get() + public static TArg1 Get() { - return m_mgr.GetInterface(); + return EventMgr.GetInterface(); } public static void Send(int eventType) { - m_mgr.GetDispatcher().Send(eventType); + EventMgr.Dispatcher.Send(eventType); } - public static void Send(int eventType, T arg1) + public static void Send(int eventType, TArg1 arg1) { - m_mgr.GetDispatcher().Send(eventType, arg1); + EventMgr.Dispatcher.Send(eventType, arg1); } - public static void Send(int eventType, T arg1, U arg2) + public static void Send(int eventType, TArg1 arg1, TArg2 arg2) { - m_mgr.GetDispatcher().Send(eventType, arg1, arg2); + EventMgr.Dispatcher.Send(eventType, arg1, arg2); } - public static void Send(int eventType, T arg1, U arg2, V arg3) + public static void Send(int eventType, TArg1 arg1, TArg2 arg2, TArg3 arg3) { - m_mgr.GetDispatcher().Send(eventType, arg1, arg2, arg3); + EventMgr.Dispatcher.Send(eventType, arg1, arg2, arg3); } - public static void Send(int eventType, T arg1, U arg2, V arg3, W arg4) + public static void Send(int eventType, TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4) { - m_mgr.GetDispatcher().Send(eventType, arg1, arg2, arg3); + EventMgr.Dispatcher.Send(eventType, arg1, arg2, arg3); } - public static void Send(int eventType, T arg1, U arg2, V arg3, W arg4, X arg5) + public static void Send(int eventType, TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5) { - m_mgr.GetDispatcher().Send(eventType, arg1, arg2, arg3, arg4, arg5); + EventMgr.Dispatcher.Send(eventType, arg1, arg2, arg3, arg4, arg5); } public static void Send(int eventType, Delegate handler) { - m_mgr.GetDispatcher().Send(eventType, handler); + EventMgr.Dispatcher.Send(eventType, handler); } //-------------------------------string Send-------------------------------// public static void Send(string eventType) { - m_mgr.GetDispatcher().Send(StringId.StringToHash(eventType)); + EventMgr.Dispatcher.Send(StringId.StringToHash(eventType)); } - public static void Send(string eventType, T arg1) + public static void Send(string eventType, TArg1 arg1) { - m_mgr.GetDispatcher().Send(StringId.StringToHash(eventType), arg1); + EventMgr.Dispatcher.Send(StringId.StringToHash(eventType), arg1); } - public static void Send(string eventType, T arg1, U arg2) + public static void Send(string eventType, TArg1 arg1, TArg2 arg2) { - m_mgr.GetDispatcher().Send(StringId.StringToHash(eventType), arg1, arg2); + EventMgr.Dispatcher.Send(StringId.StringToHash(eventType), arg1, arg2); } - public static void Send(string eventType, T arg1, U arg2, V arg3) + public static void Send(string eventType, TArg1 arg1, TArg2 arg2, TArg3 arg3) { - m_mgr.GetDispatcher().Send(StringId.StringToHash(eventType), arg1, arg2, arg3); + EventMgr.Dispatcher.Send(StringId.StringToHash(eventType), arg1, arg2, arg3); } - public static void Send(string eventType, T arg1, U arg2, V arg3, W arg4) + public static void Send(string eventType, TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4) { - m_mgr.GetDispatcher().Send(StringId.StringToHash(eventType), arg1, arg2, arg3); + EventMgr.Dispatcher.Send(StringId.StringToHash(eventType), arg1, arg2, arg3); } - public static void Send(string eventType, T arg1, U arg2, V arg3, W arg4, X arg5) + public static void Send(string eventType, TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5) { - m_mgr.GetDispatcher().Send(StringId.StringToHash(eventType), arg1, arg2, arg3, arg4, arg5); + EventMgr.Dispatcher.Send(StringId.StringToHash(eventType), arg1, arg2, arg3, arg4, arg5); } public static void Send(string eventType, Delegate handler) { - m_mgr.GetDispatcher().Send(StringId.StringToHash(eventType), handler); + EventMgr.Dispatcher.Send(StringId.StringToHash(eventType), handler); } #endregion } diff --git a/Assets/TEngine/Runtime/GameEvent/StringId.cs b/Assets/TEngine/Runtime/GameEvent/StringId.cs index f6a59644..d2b3e716 100644 --- a/Assets/TEngine/Runtime/GameEvent/StringId.cs +++ b/Assets/TEngine/Runtime/GameEvent/StringId.cs @@ -2,7 +2,7 @@ namespace TEngine { - public class StringId + public static class StringId { private static readonly Dictionary eventTypeHashMap = new Dictionary(); private static readonly Dictionary eventHashToStringMap = new Dictionary();