大家在开发Unity的时候,为了方便开发一般都会采用消息事件,消息事件主要是做啥的?我们如何去封装,如何去运用消息事件处理事情。接下来就给大家介绍一下:
消息事件顾名思义,是通过消息触发的事件。比如大家去完成某个任务,完成后才会触发另一个事件的发生,这种情况我们就会使用消息事件等等吧。
消息事件的使用主要是通过添加消息监听,然后分发消息处理事情。
那我们如何去封装我们的消息系统,在这里我把代码给大家分享一下:
首先我们定义一个消息枚举类型脚本CEventType.cs内容如下:
接下来封装消息事件的基类CBaseEvent.cs
以上是消息基类的定义。那接下来就是封装对外使用的消息接口了。
整个消息事件就完成了,接下来我们介绍如何使用消息事件,举例如下:
比如我们需要接收到数据后,开始加载资源。如果不使用事件系统,我们要每帧都要去监听,而如果我们使用消息事件,我们可以这样写:
可以在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));
}
以上就完成了消息事件的监听和分发。方便大家开发,欢迎大家来讨论学习。