您当前的位置: 首页 >  unity

CoderZ1010

暂无认证

  • 5浏览

    0关注

    168博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

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

CoderZ1010 发布时间:2022-05-17 08:45:00 ,浏览量:5

目录

简介

一、消息发布、订阅系统

1.发布消息

2.订阅消息

3.取消订阅

二、消息打包、拆包系统

1.消息打包

2.消息拆包

简介

        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("Example", SubscribeEvent);

        //发布消息主题为Example的消息 
        //消息内容为一个int类型的数值50
        Messenger.Publish("Example", 50);
    }
    private void SubscribeEvent(int num)
    {
        Debug.Log(num);
    }
}

3.取消订阅
//取消订阅消息主题为Example的消息
//取消后,消息主题为Example的消息被发布时,订阅事件SubscribeEvent不再会执行
Messenger.Unsubscribe("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("Example", UnpackEvent);
    }
    private void UnpackEvent(int num)
    {
        Debug.Log(num);
    }
}

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

关注
打赏
1653184800
查看更多评论
立即登录/注册

微信扫码登录

0.0593s