| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 | using System;using System.Collections;using System.Collections.Generic;namespace UniFramework.Event{	public class EventGroup	{		private readonly Dictionary<System.Type, List<Action<IEventMessage>>> _cachedListener = new Dictionary<System.Type, List<Action<IEventMessage>>>();		/// <summary>		/// 添加一个监听		/// </summary>		public void AddListener<TEvent>(System.Action<IEventMessage> listener) where TEvent : IEventMessage		{			System.Type eventType = typeof(TEvent);			if (_cachedListener.ContainsKey(eventType) == false)				_cachedListener.Add(eventType, new List<Action<IEventMessage>>());			if (_cachedListener[eventType].Contains(listener) == false)			{				_cachedListener[eventType].Add(listener);				UniEvent.AddListener(eventType, listener);			}			else			{				UniLogger.Warning($"Event listener is exist : {eventType}");			}		}		/// <summary>		/// 移除所有缓存的监听		/// </summary>		public void RemoveAllListener()		{			foreach (var pair in _cachedListener)			{				System.Type eventType = pair.Key;				for (int i = 0; i < pair.Value.Count; i++)				{					UniEvent.RemoveListener(eventType, pair.Value[i]);				}				pair.Value.Clear();			}			_cachedListener.Clear();		}	}}
 |