Unity SKFramework框架(六)、Messenger 消息中心
2023-09-27 14:19:52 时间
目录
简介
Messenger消息中心包含两部分内容,一部分是消息的发布、订阅系统,另一部分是消息的打包、拆包系统。它们是用于脚本之间解耦的利器。
一、消息发布、订阅系统
1.发布消息
//发布消息主题为Example的消息
//消息内容为一个int类型的数值50
Messenger.Publish("Example", 50);
消息主题支持string和int两种类型:
2.订阅消息
using UnityEngine;
using SK.Framework;
public class Example : MonoBehaviour
{
private void Start()
{
//订阅消息主题为Example的消息
//订阅后,当该主题的消息发布时,订阅事件将会被执行
Messenger.Subscribe<int>("Example", SubscribeEvent);
//发布消息主题为Example的消息
//消息内容为一个int类型的数值50
Messenger.Publish("Example", 50);
}
private void SubscribeEvent(int num)
{
Debug.Log(num);
}
}
3.取消订阅
//取消订阅消息主题为Example的消息
//取消后,消息主题为Example的消息被发布时,订阅事件SubscribeEvent不再会执行
Messenger.Unsubscribe<int>("Example", SubscribeEvent);
二、消息打包、拆包系统
1.消息打包
using UnityEngine;
using SK.Framework;
public class Example : MonoBehaviour
{
private void Start()
{
//消息打包 标识符为Example
//消息内容为一个int类型数值50
Messenger.Pack("Example", 50);
}
}
2.消息拆包
using UnityEngine;
using SK.Framework;
public class Example : MonoBehaviour
{
private void Start()
{
//消息打包 标识符为Example
//消息内容为一个int类型数值50
Messenger.Pack("Example", 50);
//消息拆包 标识符为Example
Messenger.Unpack<int>("Example", UnpackEvent);
}
private void UnpackEvent(int num)
{
Debug.Log(num);
}
}
该部分可以将消息中心理解为日常生活中的快递站,标识码identifier则是手机尾号,用于取件。
相关文章
- Qt5开发从入门到精通——第四篇六节(自定义消息框类)
- RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.0 版新增消息管理
- 基于Tomcat + JNDI + ActiveMQ实现JMS的点对点消息传送
- 微信快速开发框架(一)-- 对微信公众平台开发的消息处理
- mqtt 异步消息 长连接 解析
- c#网络通信框架networkcomms内核解析之三 消息同步调用
- networkComms 通信框架之 消息处理器
- 《.NET之美》消息及勘误
- Appium+python自动化29-toast消息(亲测 ok)
- 保证严格的消息顺序消费究竟有多难?
- Flask框架flash消息闪现学习与优化符合闪现之名
- 玩转redis-延时消息队列
- 【XMPP】Smack源码之消息接收与解析
- SpringCloud系列十一:SpringCloudStream(SpringCloudStream 简介、创建消息生产者、创建消息消费者、自定义消息通道、分组与持久化、设置 RoutingKey)
- 窗口变化相关消息 OnSize、OnSizing和OnGetMinMaxInfo
- WM_PAINT消息小结
- 基于xmpp openfire smack开发之Android消息推送技术原理分析和实践[4]
- 手机回复小程序客服消息