欢迎光临散文网 会员登陆 & 注册

unity 2D游戏开发教程4:(Unity事件广播机制【观察者模式】开发)

2023-06-09 21:05 作者:zhouhongjoe  | 我要投稿



教案如下:

课程知识点:  

在游戏开发中想象下下面场景。例如:一个关卡场景里面,我们会有管理UI的GUIManager,管理游戏的GameManger,管理输入的InputManager等等,当关卡结束的代码里面,我们经常写如下代码:

GUIManager.instance.gameOver(); //处理UI上面的关卡结束显示

GameManger.instance.gameOver();//处理整体游戏关卡结束逻辑,例如游戏生命复原

InputManager.instance.gameOver();//让手柄,键盘等不能输入等

如果还有很多组件要关卡结束时候处理业务的画,这种代码写法是不可取的。

这个时候我们就要使用【事件广播机制】,也就是在Unity项目里面用 (程序设计模式:观察者模式),来优化上面这种不可理代码。

  我们今天来学习下CorgiEngin里面的事件广播机制 (程序设计模式:观察者模式),来看下用观察者模式如何处理上面的问题。

   下面我们就来实现一下,只要一个Class就能完成自己游戏里面的事件分发机制了

1:创建我们的 MMEventManager,大家记住CorgiEngin引擎里面,EventManager放在那里的

2:在这个EventManager里面使用了ExecuteAlways,我们说明下作用

3:根据CorgiEngin的注释,使用Event的步骤1,让我们的GUIManager继承MMEventListener 接口并监听MMGameEvent事件,表示GUIManager 要进行队MMGameEvent事件的监听

4:根据CorgiEngin的注释,使用Event的步骤2,队GUIManager重写On Enable and Disable方法,Enable方法写开始监听,Disable里面写停止监听

5: 介绍C#语法学习(扩展方法)

6:介绍C#语法学习(方法体内out  引用参数)

7:介绍 C#语法 (#define 来控制工具类的报错与否)

8:根据CorgiEngin的注释,使用Event的步骤3,实现MMEventListener 接口方法

9:测试创建一个按钮来进行触发Event

10“最后我们让我们的GameManager也来监听这个Event




unity 2D游戏开发教程4:(Unity事件广播机制【观察者模式】开发)的评论 (共 条)

分享到微博请遵守国家法律