admin管理员组

文章数量:1130349

04

一介绍

该消息中心是基于委托和事件(观察者模式)设计的,是 MxFramework框架 的一个子模块。 主要是为了处理消息的收发。

 

二、消息处理中心(代码如下)

/**** *    Title: MXFramework*           主题: 消息中心*    Description: *           功能:负责消息的收发*                                  *    Date: 2020*    Version: v4.0版本*    Modify Recoder:      **/using System.Collections.Generic;
using UnityEngine;
using System;namespace Mx.Msg
{/// <summary>消息中心</summary>public class MessageCenter : MonoBehaviour{/// <summary>消息中心缓存集合</summary>public static Dictionary<string, Action<string, object>> dicMessages = new Dictionary<string, Action<string, object>>();/// <summary>/// 添加消息的监听/// </summary>/// <param name="messageType">消息分组</param>/// <param name="handler">消息委托</param>public static void AddMsgListener(string messageType, Action<string, object> handler){if(!dicMessages.ContainsKey(messageType)){dicMessages.Add(messageType, null);}dicMessages[messageType] += handler;}/// <summary>/// 取消消息监听/// </summary>/// <param name="messageType">消息分组</param>/// <param name="handler">消息委托</param>public static void RemoveMsgListener(string messageType, Action<string, object> handler){if(dicMessages.ContainsKey(messageType)){dicMessages[messageType] -= handler;}}/// <summary>/// 取消所有的消息监听/// </summary>public static void ClearAllMsgListener(){if(dicMessages!=null){dicMessages.Clear();}}/// <summary>/// 发送消息/// </summary>/// <param name="messageType">消息分组</param>/// <param name="key">消息名称</param>/// <param name="values">消息体</param>public static void SendMessage(string messageType,string key,object values){Action<string, object> del;dicMessages.TryGetValue(messageType, out del);if(del!=null){del(key,values);}}}
}

 

三、消息处理管理(代码如下) 

using System;
using UnityEngine;namespace Mx.Msg
{/// <summary>消息管理</summary>public class MessageMgr : MonoBehaviour{/// <summary>/// 添加消息的监听/// </summary>/// <param name="messageType">消息分组</param>/// <param name="handler">消息委托</param>public static void AddMsgListener(string messageType, Action<string, object> handler){MessageCenter.AddMsgListener(messageType, handler);}/// <summary>/// 取消消息监听/// </summary>/// <param name="messageType">消息分组</param>/// <param name="handler">消息委托</param>public static void RemoveMsgListener(string messageType, Action<string, object> handler){MessageCenter.RemoveMsgListener(messageType, handler);}/// <summary>/// 取消所有的消息监听/// </summary>public static void ClearAllMsgListener(){MessageCenter.ClearAllMsgListener();}/// <summary>/// 发送消息/// </summary>/// <param name="messageType">消息分组</param>/// <param name="key">消息名称</param>/// <param name="values">消息体</param>public static void SendMessage(string messageType, string key, object values){MessageCenter.SendMessage(messageType, key, values);}/// <summary>/// 发送给指定UI消息/// </summary>/// <param name="uIFormType">接收消息UI面板</param>/// <param name="key">消息名称</param>/// <param name="values">消息体</param>//public static void SendMessageToUIForm(EnumUIFormType uIFormType, string key, object values)//{//    MessageCenter.SendMessage(uIFormType.ToString() + "Msg", key, values);//}}
}

 

四、API 

1.注册消息监听事件

 public static void AddMsgListener(string messageType, Action<string, object> handler)

2.注销消息监听事件

 public static void RemoveMsgListener(string messageType, Action<string, object> handler)

3.注销所有消息监听事件

 public static void ClearAllMsgListener()

4.发送消息

 public static void SendMessage(string messageType, string key, object values)

 

五、如何使用

1.发送消息

MessageMgr.SendMessage("消息分组", "消息名称", 消息体);

2.接收消息

        private void Awake(){//注册事件>>>>>>>>>>>>>>>>>>>>>>>>>>>>>MessageMgr.AddMsgListener("消息分组", OnTestMessageCenterEvent);}private void OnDestroy(){//记得有注册就会有注销>>>>>>>>>>>>>>>>>>>>MessageMgr.RemoveMsgListener("消息分组", OnTestMessageCenterEvent);}/// <summary>/// 监听测试消息中心数据/// </summary>/// <param name="key">数据名称</param>/// <param name="values">具体的数值</param>private void OnTestMessageCenterEvent(string key, object values){switch (key){case"消息名称":数据类型 msg=(数据类型) values;break;}}

 

六、源码结构

1.核心代码路径(ImportPlugins/MXFramework**/Core/Message)

2.示例工程路径(Example/04_MessageCenter)

 

七、源码下载

MxFramework 源码:

QQ 交流群:1079467433

04

一介绍

该消息中心是基于委托和事件(观察者模式)设计的,是 MxFramework框架 的一个子模块。 主要是为了处理消息的收发。

 

二、消息处理中心(代码如下)

/**** *    Title: MXFramework*           主题: 消息中心*    Description: *           功能:负责消息的收发*                                  *    Date: 2020*    Version: v4.0版本*    Modify Recoder:      **/using System.Collections.Generic;
using UnityEngine;
using System;namespace Mx.Msg
{/// <summary>消息中心</summary>public class MessageCenter : MonoBehaviour{/// <summary>消息中心缓存集合</summary>public static Dictionary<string, Action<string, object>> dicMessages = new Dictionary<string, Action<string, object>>();/// <summary>/// 添加消息的监听/// </summary>/// <param name="messageType">消息分组</param>/// <param name="handler">消息委托</param>public static void AddMsgListener(string messageType, Action<string, object> handler){if(!dicMessages.ContainsKey(messageType)){dicMessages.Add(messageType, null);}dicMessages[messageType] += handler;}/// <summary>/// 取消消息监听/// </summary>/// <param name="messageType">消息分组</param>/// <param name="handler">消息委托</param>public static void RemoveMsgListener(string messageType, Action<string, object> handler){if(dicMessages.ContainsKey(messageType)){dicMessages[messageType] -= handler;}}/// <summary>/// 取消所有的消息监听/// </summary>public static void ClearAllMsgListener(){if(dicMessages!=null){dicMessages.Clear();}}/// <summary>/// 发送消息/// </summary>/// <param name="messageType">消息分组</param>/// <param name="key">消息名称</param>/// <param name="values">消息体</param>public static void SendMessage(string messageType,string key,object values){Action<string, object> del;dicMessages.TryGetValue(messageType, out del);if(del!=null){del(key,values);}}}
}

 

三、消息处理管理(代码如下) 

using System;
using UnityEngine;namespace Mx.Msg
{/// <summary>消息管理</summary>public class MessageMgr : MonoBehaviour{/// <summary>/// 添加消息的监听/// </summary>/// <param name="messageType">消息分组</param>/// <param name="handler">消息委托</param>public static void AddMsgListener(string messageType, Action<string, object> handler){MessageCenter.AddMsgListener(messageType, handler);}/// <summary>/// 取消消息监听/// </summary>/// <param name="messageType">消息分组</param>/// <param name="handler">消息委托</param>public static void RemoveMsgListener(string messageType, Action<string, object> handler){MessageCenter.RemoveMsgListener(messageType, handler);}/// <summary>/// 取消所有的消息监听/// </summary>public static void ClearAllMsgListener(){MessageCenter.ClearAllMsgListener();}/// <summary>/// 发送消息/// </summary>/// <param name="messageType">消息分组</param>/// <param name="key">消息名称</param>/// <param name="values">消息体</param>public static void SendMessage(string messageType, string key, object values){MessageCenter.SendMessage(messageType, key, values);}/// <summary>/// 发送给指定UI消息/// </summary>/// <param name="uIFormType">接收消息UI面板</param>/// <param name="key">消息名称</param>/// <param name="values">消息体</param>//public static void SendMessageToUIForm(EnumUIFormType uIFormType, string key, object values)//{//    MessageCenter.SendMessage(uIFormType.ToString() + "Msg", key, values);//}}
}

 

四、API 

1.注册消息监听事件

 public static void AddMsgListener(string messageType, Action<string, object> handler)

2.注销消息监听事件

 public static void RemoveMsgListener(string messageType, Action<string, object> handler)

3.注销所有消息监听事件

 public static void ClearAllMsgListener()

4.发送消息

 public static void SendMessage(string messageType, string key, object values)

 

五、如何使用

1.发送消息

MessageMgr.SendMessage("消息分组", "消息名称", 消息体);

2.接收消息

        private void Awake(){//注册事件>>>>>>>>>>>>>>>>>>>>>>>>>>>>>MessageMgr.AddMsgListener("消息分组", OnTestMessageCenterEvent);}private void OnDestroy(){//记得有注册就会有注销>>>>>>>>>>>>>>>>>>>>MessageMgr.RemoveMsgListener("消息分组", OnTestMessageCenterEvent);}/// <summary>/// 监听测试消息中心数据/// </summary>/// <param name="key">数据名称</param>/// <param name="values">具体的数值</param>private void OnTestMessageCenterEvent(string key, object values){switch (key){case"消息名称":数据类型 msg=(数据类型) values;break;}}

 

六、源码结构

1.核心代码路径(ImportPlugins/MXFramework**/Core/Message)

2.示例工程路径(Example/04_MessageCenter)

 

七、源码下载

MxFramework 源码:

QQ 交流群:1079467433

本文标签: 04