Unity中消息事件的封装与运用
2016-01-07 00:37
302 查看
大家在开发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));
}
以上就完成了消息事件的监听和分发。方便大家开发,欢迎大家来讨论学习。
本文出自 “海游移动” 博客,请务必保留此出处/article/4237424.html
消息事件顾名思义,是通过消息触发的事件。比如大家去完成某个任务,完成后才会触发另一个事件的发生,这种情况我们就会使用消息事件等等吧。
消息事件的使用主要是通过添加消息监听,然后分发消息处理事情。
那我们如何去封装我们的消息系统,在这里我把代码给大家分享一下:
首先我们定义一个消息枚举类型脚本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));
}
以上就完成了消息事件的监听和分发。方便大家开发,欢迎大家来讨论学习。
本文出自 “海游移动” 博客,请务必保留此出处/article/4237424.html
相关文章推荐
- Unity中的Path对应各平台中的Path
- Unity_Shader开发_Shaderlab(三)---------2016.1.6
- Unity3D 的物理渲染和光照模型
- 游戏动作师使用Unity3D遇到过的所有问题
- Unity_Shader开发_数学(四)---------2016.1.6
- unity3d中让物体显示和隐藏
- unity Shuriken粒子系统 ---飞镖系统?
- Unity 模拟爆炸后的物体碰撞
- Unity - UGUI - Sprite 如何打包
- Unity 点击Terrian实现物体移动
- Unity 实现点击物体
- 插件VectorLine
- # Unity3d Mecanim动画如何应用3dmax中的动画位移
- 如何直接在unity3d中运行.net4.5等高级版本的机器码
- Unity3D - 详解Quaternion类(二)
- Unity中加载模型
- Unity 点击两次返回键退出应用
- unity模型部分替换
- unity 后期特效处理初探 转
- unity 开发中的优化准则