Unity SKFramework框架(六)、Messenger 消息中心

举报
CoderZ1010 发表于 2022/09/25 05:13:04 2022/09/25
【摘要】 目录 简介 一、消息发布、订阅系统 1.发布消息 2.订阅消息 3.取消订阅 二、消息打包、拆包系统 1.消息打包 2.消息拆包 简介         Messenger消息中心包含两部分内容,一部分是消息的发布、订阅系统,另一...

目录

简介

一、消息发布、订阅系统

1.发布消息

2.订阅消息

3.取消订阅

二、消息打包、拆包系统

1.消息打包

2.消息拆包


简介

        Messenger消息中心包含两部分内容,一部分是消息的发布、订阅系统,另一部分是消息的打包、拆包系统。它们是用于脚本之间解耦的利器。

一、消息发布、订阅系统

1.发布消息


  
  1. //发布消息主题为Example的消息
  2. //消息内容为一个int类型的数值50
  3. Messenger.Publish("Example", 50);

消息主题支持string和int两种类型:

2.订阅消息


  
  1. using UnityEngine;
  2. using SK.Framework;
  3. public class Example : MonoBehaviour
  4. {
  5. private void Start()
  6. {
  7. //订阅消息主题为Example的消息
  8. //订阅后,当该主题的消息发布时,订阅事件将会被执行
  9. Messenger.Subscribe<int>("Example", SubscribeEvent);
  10. //发布消息主题为Example的消息
  11. //消息内容为一个int类型的数值50
  12. Messenger.Publish("Example", 50);
  13. }
  14. private void SubscribeEvent(int num)
  15. {
  16. Debug.Log(num);
  17. }
  18. }

3.取消订阅


  
  1. //取消订阅消息主题为Example的消息
  2. //取消后,消息主题为Example的消息被发布时,订阅事件SubscribeEvent不再会执行
  3. Messenger.Unsubscribe<int>("Example", SubscribeEvent);

二、消息打包、拆包系统

1.消息打包


  
  1. using UnityEngine;
  2. using SK.Framework;
  3. public class Example : MonoBehaviour
  4. {
  5. private void Start()
  6. {
  7. //消息打包 标识符为Example
  8. //消息内容为一个int类型数值50
  9. Messenger.Pack("Example", 50);
  10. }
  11. }

2.消息拆包


  
  1. using UnityEngine;
  2. using SK.Framework;
  3. public class Example : MonoBehaviour
  4. {
  5. private void Start()
  6. {
  7. //消息打包 标识符为Example
  8. //消息内容为一个int类型数值50
  9. Messenger.Pack("Example", 50);
  10. //消息拆包 标识符为Example
  11. Messenger.Unpack<int>("Example", UnpackEvent);
  12. }
  13. private void UnpackEvent(int num)
  14. {
  15. Debug.Log(num);
  16. }
  17. }

该部分可以将消息中心理解为日常生活中的快递站,标识码identifier则是手机尾号,用于取件。

文章来源: coderz.blog.csdn.net,作者:CoderZ1010,版权归原作者所有,如需转载,请联系作者。

原文链接:coderz.blog.csdn.net/article/details/124800452

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。