目录
简介
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则是手机尾号,用于取件。

当代野生程序猿
微信公众号
Unity开发日志分享,欢迎关注/留言/私信。


评论记录:
回复评论: