
简介
Messenger消息中心包含两部分内容,一部分是消息的发布、订阅系统,另一部分是消息的打包、拆包系统。它们是用于脚本之间解耦的利器。
//发布消息主题为Example的消息
//消息内容为一个int类型的数值50
Messenger.Publish("Example", 50);消息主题支持string和int两种类型:


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);
}
}
//取消订阅消息主题为Example的消息
//取消后,消息主题为Example的消息被发布时,订阅事件SubscribeEvent不再会执行
Messenger.Unsubscribe<int>("Example", SubscribeEvent);二、消息打包、拆包系统

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