Unity SKFramework框架(六)、Messenger 消息中心
【摘要】
目录
简介
一、消息发布、订阅系统
1.发布消息
2.订阅消息
3.取消订阅
二、消息打包、拆包系统
1.消息打包
2.消息拆包
简介
Messenger消息中心包含两部分内容,一部分是消息的发布、订阅系统,另一...
目录
简介
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则是手机尾号,用于取件。
文章来源: coderz.blog.csdn.net,作者:CoderZ1010,版权归原作者所有,如需转载,请联系作者。
原文链接:coderz.blog.csdn.net/article/details/124800452
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)