/// <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>(); }
/// <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); } }
/// <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); } }
/// <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); } }
/// <summary> /// 清理监听器 /// </summary> /// <param name="bindObject">绑定对象</param> public static void Cleanup(object bindObject = null) { if (bindObject == null) { m_eventController.CleanUp(); } else { MonoEventDispatcher.GetMonoController(bindObject).CleanUp(); } }
/// <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); } } }
/// <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> /// <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); } } }
/// <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); } } }
/// <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); } } }
/// <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="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); } } }
/// <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); } } }
/// <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); }
/// <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); } }
/// <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); }
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); } } }
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); } } }
/// <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)); } } }
/// <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); } } }
/// <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)); } } }
/// <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); } } }
/// <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); } } }
/// <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); } } }
/// <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)); } } }
/// <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); } }
/// <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>(); }