/***
*
* 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
}