消息中心
消息中心模板代码:
enum EventName{}
class MessageCenter : Singleton<MessageCenter>
{
Dictionary<EventName, Delegate> dic = new Dictionary<EventName, Delegate>();
/// <summary>
/// 添加侦听的方法
/// </summary>
/// <param name="name"></param>
/// <param name="act"></param>
public void AddEventListener(EventName name, Action act)
{
if (dic.ContainsKey(name) == false)
{
dic.Add(name, act);
}
else
{
dic[name] = dic[name] as Action + act;
}
}
/// <summary>
/// 移除侦听的方法
/// </summary>
/// <param name="name"></param>
/// <param name="act"></param>
public void RemoveEventListener(EventName name, Action act)
{
if (dic.ContainsKey(name))
{
dic[name] = dic[name] as Action - act;
}
}
/// <summary>
/// 广播事件的方法
/// </summary>
/// <param name="name"></param>
public void BroadCast(EventName name)
{
if (dic.ContainsKey(name))
{
Action act = dic[name] as Action;
if (act != null)
{
act();
}
}
}
}
添加重载:
public void AddEventListener<T>(EventName name, Action<T> act)//具有一个泛型参数的添加侦听的方法
{
if (dic.ContainsKey(name) == false)
{
dic.Add(name, act);
}
else
{
dic[name] = dic[name] as Action<T> + act;
}
}