using System.Collections; using System.Collections.Generic; using UnityEngine; using System; public class MessageCenter : MonoSingleton { public delegate void Message(); Dictionary Events=new Dictionary(); protected override void Awake() { base.Awake(); DontDestroyOnLoad(gameObject); Events = new Dictionary(); } public void AddListen(string eventName, IObserver observer) { if (!Events.ContainsKey(eventName)) { Message message = new Message(observer.Notify); Events.Add(eventName, message); return; } Events[eventName]+=observer.Notify; } public void RemoveListen(string eventName, IObserver observer) { if (Events.ContainsKey(eventName)) { Events[eventName] -= observer.Notify; } } public void SendEvent(string eventName) { if (!Events.ContainsKey(eventName)) return; Events[eventName](); } }