事件系统的好处很多,最主要的还是能够最大限度的降低模块间的耦合度,这里实现一个很简单的事件管理系统,主要功能就是对事件进行分发,以达到解偶的目的。事件系统很多新手好像不太适应,但是用的多了,就会发现它的神奇之处。
直接上代码:
public class EventManager : MonoBehaviour{
Dictionary<EventID,List<EventObserver>> observerList = new Dictionary<EventID,List<EventObserver>>();
Queue eventQueue = new Queue(); //消息队列
private static EventManager _instance = null;
public static EventManager instance()
{
return _instance;
}
void Awake(){
Debug.Log("===========启动消息系统===========");
_instance = this;
}
void Update(){
while(eventQueue.Count > 0){
EventData eve = (EventData)eventQueue.Dequeue();
if(!observerList.ContainsKey(eve.eid)){
continue;
}
List<EventObserver> obse