/// <summary>
        /// 添加事件监听
        /// </summary>
        /// <param name="type">事件类型</param>
        /// <param name="listener">事件监听回调</param>
        public void AddEvent(BaseEventType type, EventCallback listener)
        {
            string key = type.eventTypeEnum.ToString();

            if (!listenerDic.ContainsKey(key))
            {
                listenerDic.Add(key, null);
            }
            listenerDic[key] += listener;
        }
        /// <summary>
        /// 分发事件
        /// </summary>
        /// <param name="type">事件类型</param>
        /// <param name="listener">事件数据</param>
        public void DispenseEvent(BaseEventType type, BaseEventData eventData)
        {
            string key = type.eventTypeEnum.ToString();

            if (!listenerDic.ContainsKey(key))
            {
                Debug.LogError(key + ":该事件没有被监听!");
                return;
            }
            listenerDic[key](eventData);
        }
        /// <summary>
        /// 分发事件(仅通知,无数据)
        /// </summary>
        /// <param name="type">事件类型</param>
        public void DispenseEvent(BaseEventType type)
        {
            string key = type.GetType().ToString();

            if (!listenerDic.ContainsKey(key))
            {
                Debug.LogError(key + ":该事件没有被监听!");
                return;
            }
            listenerDic[key](new BaseEventData());
        }
        /// <summary>
        /// 移除事件监听
        /// </summary>
        /// <param name="type">事件类型</param>
        /// <param name="listener">事件监听回调</param>
        public void RemoveEvent(BaseEventType type, EventCallback listener)
        {
            string key = type.eventTypeEnum.ToString();

            if (!listenerDic.ContainsKey(key))
            {
                Debug.LogError(key + ":事件不存在,无法移除!");
                return;
            }
            listenerDic[key] -= listener;
            if (listenerDic[key] == null)
            {
                listenerDic.Remove(key);
            }
        }