上QQ阅读APP看书,第一时间看更新
4.3.6 事件逻辑处理模块
事件逻辑处理模块的主要逻辑都集中在EventSystem类中,其余类都只对它起辅助作用。
EventInterfaces类、EventTrigger类、EventTriggerType类定义了事件回调函数,ExecuteEvents类编写了所有执行事件的回调接口。
EventSystem类主逻辑里有300行代码,基本上都在处理由射线碰撞检测后引起的各类事件。比如,判断事件是否成立,若成立,则发起事件回调,若不成立,则继续轮询检查,等待事件的发生。
EventSystem类是事件处理模块中唯一继承MonoBehavior类并在Update帧循环中做轮询的。也就是说,所有UI事件的发生都是通过EventSystem轮询监测并且实施的。EventSystem类通过调用输入事件检测模块、检测碰撞模块来形成自己的主逻辑部分。因此可以说EventSystem是主逻辑类,是整个事件模块的入口。
架构者在设计时将整个事件层各自的职能拆分得很清楚,使源码看起来并没有那么难。输入监测由输入事件捕捉模块完成,碰撞检测由碰撞检测模块完成,事件的数据类都有各自的定义,EventSystem类的主要作用是把这些模块拼装起来成为主逻辑块。