/// <summary> /// 移除事件 /// </summary> /// <param name="eventType">事件类别</param> /// <param name="callback">回调函数</param> public void removeEventListener(string eventType, UEventListener.EventListenerDelegate callback) { if (this.eventListenerDict.ContainsKey(eventType)) { this.eventListenerDict[eventType].OnEvent -= callback; } }
/// <summary> /// 侦听事件 /// </summary> /// <param name="eventType">事件类别</param> /// <param name="callback">回调函数</param> public void addEventListener(string eventType, UEventListener.EventListenerDelegate callback) { if (!this.eventListenerDict.ContainsKey(eventType)) { this.eventListenerDict.Add(eventType, new UEventListener()); } this.eventListenerDict[eventType].OnEvent += callback; }
/// <summary> /// 移除事件 /// </summary> /// <param name="eventType">事件类别</param> /// <param name="callback">回调函数</param> public void removeEventListener(string eventType, UEventListener.EventListenerDelegate callback) { UEventListener eventListener = this.getListener(eventType); if (eventListener != null) { eventListener.OnEvent -= callback; } }
/// <summary> /// 侦听事件 /// </summary> /// <param name="eventType">事件类别</param> /// <param name="callback">回调函数</param> public void addEventListener(string eventType, UEventListener.EventListenerDelegate callback) { UEventListener eventListener = this.getListener(eventType); if (eventListener == null) { eventListener = new UEventListener(eventType); eventListenerList.Add(eventListener); } eventListener.OnEvent += callback; }
static internal int checkDelegate(IntPtr l, int p, out UEventListener.EventListenerDelegate ua) { int op = extractFunction(l, p); if (LuaDLL.lua_isnil(l, p)) { ua = null; return(op); } else if (LuaDLL.lua_isuserdata(l, p) == 1) { ua = (UEventListener.EventListenerDelegate)checkObj(l, p); return(op); } LuaDelegate ld; checkType(l, -1, out ld); if (ld.d != null) { ua = (UEventListener.EventListenerDelegate)ld.d; return(op); } LuaDLL.lua_pop(l, 1); l = LuaState.get(l).L; ua = (UEvent a1) => { int error = pushTry(l); pushValue(l, a1); ld.pcall(1, error); LuaDLL.lua_settop(l, error - 1); }; ld.d = ua; return(op); }
// 移除事件 public static void Remove(string eType, UEventListener.EventListenerDelegate callback) { dispatcher.removeEventListener(eType, callback); }
// 添加事件 public static void AddEvent(string eType, UEventListener.EventListenerDelegate callback) { dispatcher.addEventListener(eType, callback); }