unity3d监听服务器消息,Unity中消息事件的封装与运用

本文介绍了在Unity开发中如何使用和封装消息事件系统。通过定义消息枚举类型和消息基类,创建了一个简单易用的消息接口。使用消息事件可以避免每帧检查,提高代码效率。例如,当接收到特定数据时,通过监听和分发消息来触发资源加载。在Start函数中添加监听,然后在其他函数中触发事件,实现解耦和模块化的代码设计。
摘要由CSDN通过智能技术生成

大家在开发Unity的时候,为了方便开发一般都会采用消息事件,消息事件主要是做啥的?我们如何去封装,如何去运用消息事件处理事情。接下来就给大家介绍一下:

消息事件顾名思义,是通过消息触发的事件。比如大家去完成某个任务,完成后才会触发另一个事件的发生,这种情况我们就会使用消息事件等等吧。

消息事件的使用主要是通过添加消息监听,然后分发消息处理事情。

那我们如何去封装我们的消息系统,在这里我把代码给大家分享一下:

首先我们定义一个消息枚举类型脚本CEventType.cs内容如下:

1e9370426216487e0cdc33fc46d2df93.png

接下来封装消息事件的基类CBaseEvent.cs

c903a79701686c3cde7b9120da9d9474.png

a967e69466601be349df9eba91d67df7.png

55d894a68ebd36f055a7a0a92d6ed04c.png

以上是消息基类的定义。那接下来就是封装对外使用的消息接口了。

d42025a25e05715a956ca2881c78c077.png

9d01477e009731752cfaca9307b791bd.png

整个消息事件就完成了,接下来我们介绍如何使用消息事件,举例如下:

比如我们需要接收到数据后,开始加载资源。如果不使用事件系统,我们要每帧都要去监听,而如果我们使用消息事件,我们可以这样写:

可以在Start函数里监听:

void Start()

{

CEventDispatcher.GetInstance().AddEventListener(CEventType.GAME_DATA, LoadData);

}

AddEventListener函数里面第一个参数是其枚举类型,后面是需要调用的函数

这样写:

public void LoadData(CBaseEvent evt)

{

//处理加载数据的逻辑

}

写完监听函数后,事情还没完事,大家可能要问,如何触发这个监听函数,这就需要我们接下来继续操作。

可以在另一个函数里面,这个函数可以不在监听所在的类里,可以在其他类,比如我们在另一个类里写触发函数:

void BeginGame()

{

//处理逻辑

CEventDispatcher.GetInstance().DIspatchEvent(new CBaseEvent(CEvent.GAME_DATA, null));

}

以上就完成了消息事件的监听和分发。方便大家开发,欢迎大家来讨论学习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值