Exemplo 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 + ">不存在");
            }
        }
Exemplo n.º 2
0
    /// <summary>
    /// 清除所有事件
    /// </summary>
    /// <param name="eventEnumType"></param>
    public static void Clear(UpdateEventEnumType eventEnumType, OperationModeEnumType operationModeEnum = OperationModeEnumType.NoPause)
    {
        switch (eventEnumType)
        {
        case UpdateEventEnumType.FixedUpdate:
            if (fixedUpdateEvent != null)
            {
                fixedUpdateEvent.Clear(operationModeEnum);
            }
            break;

        case UpdateEventEnumType.Update:
            if (updateEvent != null)
            {
                updateEvent.Clear(operationModeEnum);
            }
            break;

        case UpdateEventEnumType.LateUpdate:
            if (lateUpdateEvent != null)
            {
                lateUpdateEvent.Clear(operationModeEnum);
            }
            break;

        default:
            break;
        }
    }
Exemplo n.º 3
0
        /// <summary>
        /// 清除所有事件
        /// </summary>
        public virtual void Clear(OperationModeEnumType operationModeEnum)
        {
            switch (operationModeEnum)
            {
            case OperationModeEnumType.NoPause:
                eventObjects.Clear();
                break;

            case OperationModeEnumType.Pause:
                pauseEventObjects.Clear();
                break;

            default:
                break;
            }
        }
Exemplo n.º 4
0
    /// <summary>
    ///去除对应项Update更新所有监听
    /// </summary>
    /// <param name="eventEnumType"></param>
    /// <param name="eventName"></param>
    /// <param name="listener"></param>
    public static void RemoveUpdateAllListener(UpdateEventEnumType eventEnumType, string eventName, OperationModeEnumType operationModeEnum = OperationModeEnumType.NoPause)
    {
        switch (eventEnumType)
        {
        case UpdateEventEnumType.FixedUpdate:
            if (fixedUpdateEvent != null)
            {
                fixedUpdateEvent.RemoveAllListener(eventName, operationModeEnum);
            }
            break;

        case UpdateEventEnumType.Update:
            if (updateEvent != null)
            {
                updateEvent.RemoveAllListener(eventName, operationModeEnum);
            }
            break;

        case UpdateEventEnumType.LateUpdate:
            if (lateUpdateEvent != null)
            {
                lateUpdateEvent.RemoveAllListener(eventName, operationModeEnum);
            }
            break;

        default:
            break;
        }
    }
Exemplo n.º 5
0
    /// <summary>
    /// 添加Update更新监听
    /// </summary>
    /// <param name="eventEnumType"></param>
    /// <param name="eventName"></param>
    /// <param name="listener"></param>
    public static UpdateEvent_CallBack AddUpdateListener(UpdateEventEnumType eventEnumType, string eventName, UpdateEvent_CallBack listener, OperationModeEnumType operationModeEnum = OperationModeEnumType.NoPause)
    {
        UpdateEvent_CallBack _listener = listener;

        switch (eventEnumType)
        {
        case UpdateEventEnumType.FixedUpdate:
            if (fixedUpdateEvent != null)
            {
                _listener = fixedUpdateEvent.AddListener(eventName, listener, operationModeEnum);
            }
            break;

        case UpdateEventEnumType.Update:
            if (updateEvent != null)
            {
                _listener = updateEvent.AddListener(eventName, listener, operationModeEnum);
            }
            break;

        case UpdateEventEnumType.LateUpdate:
            if (lateUpdateEvent != null)
            {
                _listener = lateUpdateEvent.AddListener(eventName, listener, operationModeEnum);
            }
            break;

        default:
            break;
        }
        return(_listener);
    }
Exemplo n.º 6
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 + ">不存在");
            }
        }
Exemplo n.º 7
0
        /// <summary>
        /// 添加事件
        /// </summary>
        /// <param name="eventName"></param>
        /// <param name="eventCall"></param>
        public virtual UpdateEvent_CallBack AddListener(string eventName, UpdateEvent_CallBack listener, OperationModeEnumType operationModeEnum)
        {
            switch (operationModeEnum)
            {
            case OperationModeEnumType.Pause:
                if (pauseEventObjects.ContainsKey(eventName))
                {
                    pauseEventObjects[eventName].Add(new UpdateEventObject(listener));
                }
                else
                {
                    pauseEventObjects.Add(eventName, new List <UpdateEventObject>()
                    {
                        new UpdateEventObject(listener)
                    });
                }
                break;

            case OperationModeEnumType.NoPause:
                if (eventObjects.ContainsKey(eventName))
                {
                    eventObjects[eventName].Add(new UpdateEventObject(listener));
                }
                else
                {
                    eventObjects.Add(eventName, new List <UpdateEventObject>()
                    {
                        new UpdateEventObject(listener)
                    });
                }
                break;

            default:
                break;
            }
            return(listener);
        }