/*** * * Title: "SUIFW" UI框架项目 * 主题: 消息中心 * Description: * 功能: 负责本UI框架,以及整个项目的消息传递工作。 * Date: 2017 * Version: 0.1版本 * Modify Recoder: * * */ using UnityEngine; using UnityEngine.EventSystems; using System; using System.Collections.Generic; namespace SUIFW { public class MessageCenter { /// /// 委托:消息传递 /// /// 消息类型与数值 public delegate void DelMessageDelivery(KeyValuesUpdate kv); //<所要监听的类型,监听到以后要执行的委托> public static Dictionary dicMessages = new Dictionary(); /// /// 添加消息监听 /// /// 消息类型 /// 消息委托 public static void AddMsgListener(string messageType, DelMessageDelivery handler) { if (!dicMessages.ContainsKey(messageType)) { dicMessages.Add(messageType, null); } dicMessages[messageType] += handler; } /// /// 取消指定消息监听 /// /// 消息类型 /// 消息委托 public static void RemoveMsgListener(string messageType, DelMessageDelivery handler) { if (dicMessages.ContainsKey(messageType)) { dicMessages[messageType] -= handler; } } /// /// 取消所有的消息监听 /// public static void RemoveAllMsgListener() { dicMessages.Clear(); } /// /// 发送消息 /// /// /// public static void SendMessage(string messageType, KeyValuesUpdate kv) { DelMessageDelivery del; if (dicMessages.TryGetValue(messageType, out del)) { if (del != null) { del(kv); } } } }//Class_end /// /// 键值更新 /// 功能:配合委托,实现委托数据传递 /// public class KeyValuesUpdate { //键 private string _Key; //值 private object _Values; /* 只读属性 */ public string Key { get { return _Key; } } public object Values { get { return _Values; } } public KeyValuesUpdate(string key, object Values) { _Key = key; _Values = Values; } }//Class_end }