/// <summary> /// 去除所有名字下事件 /// </summary> /// <param name="eventName"></param> public virtual void RemoveAllListener(string eventName, OperationModeEnumType operationModeEnum) { UpdateEventObject eventObject = default(UpdateEventObject); switch (operationModeEnum) { case OperationModeEnumType.NoPause: if (eventObjects.ContainsKey(eventName)) { eventObjects.Remove(eventName); } break; case OperationModeEnumType.Pause: if (pauseEventObjects.ContainsKey(eventName)) { pauseEventObjects.Remove(eventName); } break; default: break; } if (eventObject != null) { Debug.Log("事件<" + eventName + ">不存在"); } }
/// <summary> /// 恢复暂停事件 /// </summary> public virtual void RenewPauseEvent(string eventName, UpdateEvent_CallBack listener) { if (pauseEventObjects.ContainsKey(eventName)) { UpdateEventObject eventObject = pauseEventObjects[eventName].Find(e => e.eventCall == listener); if (eventObject != null) { eventObject.isUpdate = true; } } }
/// <summary> /// 去除事件 /// </summary> /// <param name="eventName"></param> /// <param name="listener"></param> public virtual void RemoveListener(string eventName, UpdateEvent_CallBack listener, OperationModeEnumType operationModeEnum) { UpdateEventObject eventObject = default(UpdateEventObject); switch (operationModeEnum) { case OperationModeEnumType.Pause: if (pauseEventObjects.ContainsKey(eventName)) { eventObject = pauseEventObjects[eventName].Find(e => e.eventCall == listener); pauseEventObjects[eventName].Remove(eventObject); } break; case OperationModeEnumType.NoPause: if (eventObjects.ContainsKey(eventName)) { eventObject = eventObjects[eventName].Find(e => e.eventCall == listener); eventObjects[eventName].Remove(eventObject); } break; default: break; } if (eventObject != null) { bool Exist = false; foreach (var item in eventObject.eventCall.GetInvocationList()) { if (item.Method == listener.Method) { Exist = true; } } if (!Exist) { Debug.Log(eventName + "==listener监听事件不存在字典中!移除监听参数不能为Lambda表达式。\n解决方法请参考添加监听方法 (AddListener)的返回值!!!"); return; } } else { Debug.Log("事件<" + eventName + ">不存在"); } }