/// <summary>
 /// 添加监听器
 /// </summary>
 /// <param name="bindObject"></param>
 /// <param name="eventType"></param>
 /// <param name="handler"></param>
 public static void AddEventListener(this GameObject bindObject, string eventType, Action handler)
 {
     if (bindObject == null)
     {
         return;
     }
     MonoEventDispatcher.GetMonoController(bindObject).AddEventListener(eventType, handler, bindObject);
     bindObject.GetOrCreateComponent <MonoEventCleanUp>();
 }
示例#2
0
 /// <summary>
 /// 移除事件
 /// </summary>
 /// <param name="eventType"></param>
 /// <param name="bindObject"></param>
 public static void RemoveEvent(string eventType, object bindObject = null)
 {
     if (bindObject == null)
     {
         m_eventController.RemoveEvent(eventType);
     }
     else
     {
         MonoEventDispatcher.GetMonoController(bindObject).RemoveEvent(eventType);
     }
 }
示例#3
0
 /// <summary>
 /// 移除监听器
 /// </summary>
 /// <param name="eventType">事件类型</param>
 /// <param name="handler">处理行为</param>
 /// <param name="bindObject">绑定对象</param>
 public static void RemoveEventListener(string eventType, Action handler, object bindObject = null)
 {
     if (bindObject == null)
     {
         m_eventController.RemoveEventListener(eventType, handler);
     }
     else
     {
         MonoEventDispatcher.GetMonoController(bindObject).RemoveEventListener(eventType, handler);
     }
 }
示例#4
0
 /// <summary>
 /// 添加监听器
 /// </summary>
 /// <param name="eventType">事件类型</param>
 /// <param name="handler">处理行为</param>
 /// <param name="bindObject">绑定对象</param>
 public static void AddEventListener <T, U, V, W>(string eventType, Action <T, U, V, W> handler, object bindObject = null)
 {
     if (bindObject == null)
     {
         m_eventController.AddEventListener <T, U, V, W>(eventType, handler);
     }
     else
     {
         MonoEventDispatcher.GetMonoController(bindObject).AddEventListener <T, U, V, W>(eventType, handler);
     }
 }
示例#5
0
 /// <summary>
 /// 清理监听器
 /// </summary>
 /// <param name="bindObject">绑定对象</param>
 public static void Cleanup(object bindObject = null)
 {
     if (bindObject == null)
     {
         m_eventController.CleanUp();
     }
     else
     {
         MonoEventDispatcher.GetMonoController(bindObject).CleanUp();
     }
 }
示例#6
0
 /// <summary>
 /// 移除事件
 /// </summary>
 /// <param name="eventType"></param>
 /// <param name="bindObject"></param>
 public static void RemoveEvent(string eventType, object bindObject = null)
 {
     if (bindObject == null)
     {
         globelEventController.RemoveEvent(eventType);
     }
     else
     {
         EventController controller = MonoEventDispatcher.GetMonoController(bindObject);
         if (controller != null)
         {
             controller.RemoveEvent(eventType);
         }
     }
 }
示例#7
0
 /// <summary>
 /// 清理监听器
 /// </summary>
 /// <param name="bindObject">绑定对象</param>
 public static void Cleanup(object bindObject = null)
 {
     if (bindObject == null)
     {
         globelEventController.CleanUp();
     }
     else
     {
         EventController controller = MonoEventDispatcher.GetMonoController(bindObject);
         if (controller != null)
         {
             controller.CleanUp();
         }
     }
 }
 /// <summary>
 /// 移除多返回提供器
 /// </summary>
 /// <typeparam name="Res"></typeparam>
 /// <param name="eventType"></param>
 /// <param name="provider"></param>
 /// <param name="bindObject"></param>
 public static void RemoveMultProvider <A1, A2, A3, A4, Res>(string eventType, Func <A1, A2, A3, A4, Res> provider, object bindObject = null)
 {
     if (bindObject == null)
     {
         m_eventController.RemoveMultProvider <A1, A2, A3, A4, Res>(eventType, provider);
     }
     else
     {
         EventController controller = MonoEventDispatcher.GetMonoController(bindObject);
         if (controller != null)
         {
             controller.RemoveMultProvider <A1, A2, A3, A4, Res>(eventType, provider);
         }
     }
 }
 /// <summary>
 /// 移除单返回提供器
 /// </summary>
 /// <param name="provider"></param>
 public static void RemoveSingleProvider(string provider, object bindObject = null)
 {
     if (bindObject == null)
     {
         m_eventController.RemoveSingleProvider(provider);
     }
     else
     {
         EventController controller = MonoEventDispatcher.GetMonoController(bindObject);
         if (controller != null)
         {
             controller.RemoveSingleProvider(provider);
         }
     }
 }
示例#10
0
 /// <summary>
 /// 添加监听器
 /// </summary>
 /// <param name="eventType">事件类型</param>
 /// <param name="handler">处理行为</param>
 /// <param name="bindObject">绑定对象</param>
 public static void AddEventListener(string eventType, Action handler, object bindObject = null)
 {
     if (bindObject == null)
     {
         m_eventController.AddEventListener(eventType, handler);
     }
     else
     {
         EventController controller = MonoEventDispatcher.GetMonoController(bindObject);
         if (controller != null)
         {
             controller.AddEventListener(eventType, handler);
         }
     }
 }
示例#11
0
 /// <summary>
 /// 移除监听器
 /// </summary>
 /// <param name="eventType">事件类型</param>
 /// <param name="handler">处理行为</param>
 /// <param name="bindObject">绑定对象</param>
 public static void RemoveEventListener <T, U, V, W>(string eventType, Action <T, U, V, W> handler, object bindObject = null)
 {
     if (bindObject == null)
     {
         m_eventController.RemoveEventListener <T, U, V, W>(eventType, handler);
     }
     else
     {
         EventController controller = MonoEventDispatcher.GetMonoController(bindObject);
         if (controller != null)
         {
             controller.RemoveEventListener <T, U, V, W>(eventType, handler);
         }
     }
 }
示例#12
0
 /// <summary>
 /// 设置为持久
 /// </summary>
 /// <param name="eventType"></param>
 /// <param name="bindObject"></param>
 public static void MarkAsPermanent(string eventType, object bindObject = null)
 {
     if (bindObject == null)
     {
         m_eventController.MarkAsPermanent(eventType);
     }
     else
     {
         EventController controller = MonoEventDispatcher.GetMonoController(bindObject);
         if (controller != null)
         {
             controller.MarkAsPermanent(eventType);
         }
     }
 }
示例#13
0
 /// <summary>
 /// 添加单返回提供器
 /// </summary>
 /// <typeparam name="Res"></typeparam>
 /// <param name="provideType"></param>
 /// <param name="provider"></param>
 /// <param name="bindObject"></param>
 public static void AddMultProvider <A1, Res>(string provideType, Func <A1, Res> provider, object bindObject = null)
 {
     if (bindObject == null)
     {
         m_eventController.AddMultProvider <A1, Res>(provideType, provider);
     }
     else
     {
         EventController controller = MonoEventDispatcher.GetMonoController(bindObject);
         if (controller != null)
         {
             controller.AddMultProvider <A1, Res>(provideType, provider);
         }
     }
 }
示例#14
0
 /// <summary>
 /// 添加单返回提供器
 /// </summary>
 /// <typeparam name="Res"></typeparam>
 /// <param name="provideType"></param>
 /// <param name="provider"></param>
 /// <param name="bindObject"></param>
 public static BaseCommand AddMultProvider <A1, A2, A3, A4, Res>(string provideType, Func <A1, A2, A3, A4, Res> provider, object bindObject = null)
 {
     if (bindObject == null)
     {
         return(globelEventController.AddMultProvider <A1, A2, A3, A4, Res>(provideType, provider, bindObject));
     }
     else
     {
         EventController controller = MonoEventDispatcher.GetMonoController(bindObject);
         if (controller != null)
         {
             return(controller.AddMultProvider <A1, A2, A3, A4, Res>(provideType, provider, bindObject));
         }
     }
     return(null);
 }
示例#15
0
 /// <summary>
 /// 是否包含事件
 /// </summary>
 /// <param name="eventType"></param>
 /// <param name="bindObject"></param>
 /// <returns></returns>
 public static bool ContainEvent(string eventType, object bindObject = null)
 {
     if (bindObject == null)
     {
         return(globelEventController.TheRouter.ContainsKey(eventType));
     }
     else
     {
         EventController controller = MonoEventDispatcher.GetMonoController(bindObject);
         if (controller != null)
         {
             return(controller.TheRouter.ContainsKey(eventType));
         }
         return(false);
     }
 }
示例#16
0
 /// <summary>
 /// 添加监听器
 /// </summary>
 /// <param name="eventType">事件类型</param>
 /// <param name="handler">处理行为</param>
 /// <param name="bindObject">绑定对象</param>
 public static BaseCommand AddEventListener <T, U, V>(string eventType, Action <T, U, V> handler, object bindObject = null)
 {
     if (bindObject == null)
     {
         return(globelEventController.AddEventListener <T, U, V>(eventType, handler, bindObject));
     }
     else
     {
         EventController controller = MonoEventDispatcher.GetMonoController(bindObject);
         if (controller != null)
         {
             return(controller.AddEventListener <T, U, V>(eventType, handler, bindObject));
         }
     }
     return(null);
 }
示例#17
0
 public static void TriggerEventWithTag(string eventType, object tag)
 {
     if (tag == null)
     {
         globelEventController.TriggerEvent(eventType);
         MonoEventDispatcher.DoToAllMonoContorller((con) =>
         {
             con.TriggerEvent(eventType);
         });
     }
     else
     {
         EventController controller = MonoEventDispatcher.GetMonoController(tag);
         if (controller != null)
         {
             controller.TriggerEvent(eventType);
         }
     }
 }
示例#18
0
 public static void TriggerEventWithTag <T, U, V>(string eventType, T arg1, U arg2, V arg3, object tag = null)
 {
     if (tag == null)
     {
         globelEventController.TriggerEvent <T, U, V>(eventType, arg1, arg2, arg3);
         MonoEventDispatcher.DoToAllMonoContorller((con) =>
         {
             con.TriggerEvent <T, U, V>(eventType, arg1, arg2, arg3);
         });
     }
     else
     {
         EventController controller = MonoEventDispatcher.GetMonoController(tag);
         if (controller != null)
         {
             controller.TriggerEvent <T, U, V>(eventType, arg1, arg2, arg3);
         }
     }
 }
示例#19
0
 /// <summary>
 /// 请求单返回提供器返回消息
 /// </summary>
 /// <typeparam name="Res"></typeparam>
 /// <param name="providerType"></param>
 /// <returns></returns>
 public static Res RequestSingleProvider <A1, A2, A3, Res>(string providerType, A1 arg1, A2 arg2, A3 arg3, object tag = null)
 {
     if (tag == null)
     {
         return(globelEventController.RequestSingleProvider <A1, A2, A3, Res>(providerType, arg1, arg2, arg3));
     }
     else
     {
         EventController controller = MonoEventDispatcher.GetMonoController(tag);
         if (controller != null)
         {
             return(controller.RequestSingleProvider <A1, A2, A3, Res>(providerType, arg1, arg2, arg3));
         }
         else
         {
             return(default(Res));
         }
     }
 }
示例#20
0
 /// <summary>
 /// 请求并处理多返回提供器的返回消息
 /// </summary>
 /// <typeparam name="Res"></typeparam>
 /// <param name="providerType"></param>
 /// <param name="handler"></param>
 /// <param name="triggerObject"></param>
 public static void RequestMultProvider <A1, A2, Res>(string providerType, Action <Res> handler, A1 arg1, A2 arg2, object triggerObject = null)
 {
     if (triggerObject == null)
     {
         m_eventController.RequestMultProvider <A1, A2, Res>(providerType, handler, arg1, arg2);
         MonoEventDispatcher.DoToAllMonoContorller((con) =>
         {
             con.RequestMultProvider <A1, A2, Res>(providerType, handler, arg1, arg2);
         });
     }
     else
     {
         EventController controller = MonoEventDispatcher.GetMonoController(triggerObject);
         if (controller != null)
         {
             controller.RequestMultProvider <A1, A2, Res>(providerType, handler, arg1, arg2);
         }
     }
 }
示例#21
0
 /// <summary>
 /// 请求单返回提供器返回消息
 /// </summary>
 /// <typeparam name="Res"></typeparam>
 /// <param name="providerType"></param>
 /// <returns></returns>
 public static Res RequestSingleProvider <Res>(string providerType, object triggerObject = null)
 {
     if (triggerObject == null)
     {
         return(m_eventController.RequestSingleProvider <Res>(providerType));
     }
     else
     {
         EventController controller = MonoEventDispatcher.GetMonoController(triggerObject);
         if (controller != null)
         {
             return(controller.RequestSingleProvider <Res>(providerType));
         }
         else
         {
             return(default(Res));
         }
     }
 }
示例#22
0
 /// <summary>
 /// 触发行为
 /// </summary>
 /// <param name="eventType">事件类型</param>
 /// <param name="triggerObject">触发对象</param>
 public static void TriggerEvent <T, U, V, W>(string eventType, T arg1, U arg2, V arg3, W arg4, object triggerObject = null)
 {
     if (triggerObject == null)
     {
         m_eventController.TriggerEvent <T, U, V, W>(eventType, arg1, arg2, arg3, arg4);
         MonoEventDispatcher.DoToAllMonoContorller((con) =>
         {
             con.TriggerEvent <T, U, V, W>(eventType, arg1, arg2, arg3, arg4);
         });
     }
     else
     {
         EventController controller = MonoEventDispatcher.GetMonoController(triggerObject);
         if (controller != null)
         {
             controller.TriggerEvent <T, U, V, W>(eventType, arg1, arg2, arg3, arg4);
         }
     }
 }
示例#23
0
 /// <summary>
 /// 触发行为
 /// </summary>
 /// <param name="eventType">事件类型</param>
 /// <param name="triggerObject">触发对象</param>
 public static void TriggerEvent(string eventType, object triggerObject = null)
 {
     if (triggerObject == null)
     {
         m_eventController.TriggerEvent(eventType);
         MonoEventDispatcher.DoToAllMonoContorller((con) =>
         {
             con.TriggerEvent(eventType);
         });
     }
     else
     {
         EventController controller = MonoEventDispatcher.GetMonoController(triggerObject);
         if (controller != null)
         {
             controller.TriggerEvent(eventType);
         }
     }
 }
示例#24
0
 /// <summary>
 /// 请求并处理多返回提供器的返回消息
 /// </summary>
 /// <typeparam name="Res"></typeparam>
 /// <param name="providerType"></param>
 /// <param name="handler"></param>
 /// <param name="tag"></param>
 public static void RequestMultProvider <A1, A2, A3, A4, Res>(string providerType, Action <Res> handler, A1 arg1, A2 arg2, A3 arg3, A4 arg4, object tag = null)
 {
     if (tag == null)
     {
         globelEventController.RequestMultProvider <A1, A2, A3, A4, Res>(providerType, handler, arg1, arg2, arg3, arg4);
         MonoEventDispatcher.DoToAllMonoContorller((con) =>
         {
             con.RequestMultProvider <A1, A2, A3, A4, Res>(providerType, handler, arg1, arg2, arg3, arg4);
         });
     }
     else
     {
         EventController controller = MonoEventDispatcher.GetMonoController(tag);
         if (controller != null)
         {
             controller.RequestMultProvider <A1, A2, A3, A4, Res>(providerType, handler, arg1, arg2, arg3, arg4);
         }
     }
 }
示例#25
0
 /// <summary>
 /// 请求单返回提供器返回消息
 /// </summary>
 /// <typeparam name="Res"></typeparam>
 /// <param name="providerType"></param>
 /// <returns></returns>
 public static Res RequestSingleProvider <A1, A2, A3, A4, Res>(string providerType, A1 arg1, A2 arg2, A3 arg3, A4 arg4, object triggerObject = null)
 {
     if (triggerObject == null)
     {
         return(m_eventController.RequestSingleProvider <A1, A2, A3, A4, Res>(providerType, arg1, arg2, arg3, arg4));
     }
     else
     {
         EventController controller = MonoEventDispatcher.GetMonoController(triggerObject);
         if (controller != null)
         {
             return(controller.RequestSingleProvider <A1, A2, A3, A4, Res>(providerType, arg1, arg2, arg3, arg4));
         }
         else
         {
             return(default(Res));
         }
     }
 }
示例#26
0
 /// <summary>
 /// 触发行为
 /// </summary>
 /// <param name="eventType">事件类型</param>
 /// <param name="triggerObject">触发对象</param>
 public static void TriggerEvent <T, U, V, W>(string eventType, T arg1, U arg2, V arg3, W arg4, object triggerObject = null)
 {
     if (triggerObject == null)
     {
         m_eventController.TriggerEvent <T, U, V, W>(eventType, arg1, arg2, arg3, arg4);
         List <EventController> temp = new List <EventController>(MonoEventDispatcher.monoEventControllerDict.Values);
         for (int i = 0; i < temp.Count; i++)
         {
             if (temp[i].Equals(null))
             {
                 continue;
             }
             temp[i].TriggerEvent <T, U, V, W>(eventType, arg1, arg2, arg3, arg4);
         }
     }
     else
     {
         MonoEventDispatcher.GetMonoController(triggerObject).TriggerEvent <T, U, V, W>(eventType, arg1, arg2, arg3, arg4);
     }
 }
示例#27
0
 void OnDestroy()
 {
     MonoEventDispatcher.RemoveMonoController(gameObject);
 }
示例#28
0
 /// <summary>
 /// 添加监听器
 /// </summary>
 /// <param name="bindObject"></param>
 /// <param name="eventType"></param>
 /// <param name="handler"></param>
 public static void AddEventListener <T, U, V, W>(this GameObject bindObject, string eventType, Action <T, U, V, W> handler)
 {
     MonoEventDispatcher.GetMonoController(bindObject).AddEventListener <T, U, V, W>(eventType, handler);
     bindObject.GetOrCreateComponent <MonoEventCleanUp>();
 }