Unity教程之-Unity3d 帧事件管理器

 

大家在开发 Unity 的时候,肯定使用过 MonoBehaviour 中的 Update 函数,在每个类中调用 Update 有很多优点,当然也有非常多的缺点,下面我们说说他的优点与缺点。

优点部分(不完全)

1、方便,每个逻辑单独处理,比如每个子弹对象控制每个子弹的移动轨迹等等。

缺点部分(不完全)

1、每个类的 Update 函数都会自动运行,禁止自动运行一是禁用脚本,但是禁用脚本之后,其他的固定执行函数将无法继续进行,二是添加状态判断,这样又会增加每个类的执行效率开销。
2、每个类的 Update 执行顺序不能统一,比如一个子弹每帧移动 5 像素,另一个子弹每帧移动 5 像素,但是不能保证他们能在同帧中同时到达目标位置。
3、暂停比较麻烦,比如我们希望场景中的某些角色停止一分钟,这个时候我们最常用的就是添加一个状态,然后在 Update 中判断这个状态值,但是这样会增加每个类的执行效率开销。

因为以前在开发 FLASH 游戏的时候,会经常使用帧管理器来统一管理游戏的运行,因为这样可以保证游戏对象都有统一的节奏,在一个帧中可能执行的逻辑有些复杂,但是这会确保游戏对象都有统一的时间延迟,根据以前的经验,用 Unity 实现了一个帧管理器,这样做的好处是只需要几个少数的 Update 函数就可以管理游戏中所有的对象节奏,保证逻辑统一,并且有序。

主要的类只有两个,一个是 FrameItem.cs 类,代码如下: