Chronos - Time Control是用于控制游戏中各种时钟的插件,也是Unity Awards 2015优秀插件大奖得主。该插件小巧易用且优化过性能,可以搞定游戏中所有的时钟控制。支持时间的暂停、倒退、减速及加速,并且每个对象都有单独的时间线,还可以按区域来同时控制多个对象。
Chronos - Time Control非常简单,能够很好的应用于自定义脚本,并且完全兼容对象的物理属性,能够自动适应动画、粒子效果、Nav Mesh Agent及音效。该插件主要包含三种类型的脚本:
Timekeeper:追踪场景全局时钟的单例,一个场景仅需一个Timekeeper。
Clock:所有类型时钟的基类。共有三种时钟:Global Clock(全局时钟)、Local Clock(本地时钟)及Area Clock(区域时钟)。
Timeline:整合一个或多个时钟来单独控制某一个游戏对象的Delta Time和Time Scale等属性。每个需要使用Chronos控制的游戏对象都要绑定该脚本。
Chronos - Time Control适合实现一些游戏角色的特殊技能,如操控时间的魔法或科幻技能等。不论2D或3D游戏均能完美支持,且适用于任何平台。
以塔防游戏为例,做图解:
最上层的 Timekeeper 单例,来管理场景里面所有的 GlobalClock 全局时钟(Root, Interface, Enemies 和 Turrets)。
Root 和 Interface 时钟是隔离的,因为对于用户 UI 元素通常是用常量的 timeScale (大部分是1)。通过这种方式,当要暂停游戏的时候,只要设置 Root 时钟的 timeScale 为 0 即可,那么 UI 菜单依然有动画效果。
Root 时钟下面有两个子时钟,Enemies 和 Turrets 时钟。在这个塔防游戏里,可能会想要单独控制 enemies 敌人和 turrets 炮塔。例如,在所有炮塔加速的时候,敌人仍保持着常规的速度。
对玩家角色配置一个本地时钟,因为场景里只有一个玩家角色,那么就不需要使用到全局时钟。
每个对象都拥有自己的时间线。这个时间线将所有应用在对象身上的时钟进行计算,并返回最终的 timeScale 。
另外,还可以创建球形区域时钟,在这个区域里面的对象都会受到这个时钟的影响。
所支持的组件:动画、粒子特效、网格导航和音频等:
:更改所有 AnimationState 的 speed 属性
Animator:更改 speed 属性
AudioSource:更改 pitch 属性
ParticleSystem:更改 playbackSpeed 属性
NavMeshAgent:更改 speed 和 angularSpeed 属性
WindZone:更改 windTurbulence 、windPulseFrequency 和 windPulseMagnitude 属性
Transform:记录快照,更改 position 和 rotation 属性
Rigidbody:记录快照,更改 velocity 和 angularVelocity 属性,也可能更改 transform.position 和 transform.rotation 属性
Rigidbody2D:记录快照,更改 velocity 和 angularVelocity 属性,也更改 transform.position 和 transform.rotation 属性
请先
!