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

教案如下:
课程知识点:
在游戏开发中想象下下面场景。例如:一个关卡场景里面,我们会有管理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