Esempio n. 1
0
        /// <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 + ">不存在");
            }
        }
Esempio n. 2
0
 /// <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;
         }
     }
 }
Esempio n. 3
0
        /// <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 + ">不存在");
            }
        }