Unity TimeLine之Control Track
前言
Unity 2017 引入了TimeLine功能,引用以下官方描述
Use Unity’s Timeline to create cinematic content, game-play sequences, audio sequences, and complex particle effects.
可以看出,该功能的出现,可以帮助开发者更好地进行基于时序的内容创作。
Track类型
TimeLine工具中的Track类型有以下5种
- Activation Track
- Animation Track
- Audio Track
- Control Track
- Playable Track
其中,前3种类型,官方的文档中都有所提及,相对容易理解,且网上教程也比较多。本文尝试探究下第四种Track类型:Control Track,来尝试解答下这种Track到底控制了什么。
实验准备
注:以下实验中省略了设置Activation Track / Animation Track步骤
首先,我们创建一个简单的场景,放置两个简单人物模型,并为他们创建2个TimeLine。
- 第一个TimeLine命名MoveToWave,执行后,角色1向前行走2米后,挥手;
-
第二个TimeLine命名MoveToPickUp,执行后,角色2向前行走2米后,拾取;
实验准备场景.png
实验工程Hierachy.png
两个TimeLine具体设置如下:
MoveToPickUp.png
MoveToWave.png
尝试1:播放特效
既然前言中的官方说明已经提及了粒子特效,那我们就尝试下利用Control Track播放特效。
-
步骤1: 在MoveToWave的TimeLine编辑器中,点击Add按钮,在下拉菜单中选择Control Track,创建一条Control Track
创建ControlTrack.png -
步骤2: 将一个特效预制拖入Control Track
粒子特效拖入ControlTrack.png -
步骤3: 将MoveToWave物件上的组件Playable Director中的Play On Awake选项勾选,表示MoveToWave物件激活时,就开始执行TimeLine
激活MoveToWave.png -
步骤4: 查看执行结果,同时观察Hierachy中粒子特效物件的生命周期
播放粒子特效.gif
检查粒子特效物件生命周期.png
结论: Control Track中拖入粒子特效后,该TimeLine会自动创建粒子特效,并在播放结束后,执行删除操作
尝试2: 播放另一个TimeLine
-
步骤1: 在MoveToWave的TimeLine编辑器中,点击Add按钮,在下拉菜单中选择Control Track,创建一条Control Track,直接将MoveToPickUp物件拖入其中
TimeLine拖入ControlTrack.png -
步骤2: 将场景中MoveToPickUp物件上Playable Director中的Play On Awake选项反选,表示MoveToPickUp上的TimeLine不自动播放,我们让该TimeLine依靠MoveToWave上的Control Track来触发
反选被触发TimeLine上的Play On Awake.png -
步骤3: 查看执行结果
播放TimeLine.gif
结论: Control Track中拖入另一个TimeLine后,TimeLine会按照时间轴正确处理,衔接触发后续TimeLine
尝试3: 实例化带有TimeLine的预制体
通过实验1和2,我们知道了Control Track可以控制时序的粒子特效以及TimeLine自身。其实,我们发现Control Track在处理粒子特效时,附带了一个功能:管理一个预制体从创建至销毁的生命周期。那我们能不能利用Control Track这个特点,实现一些更加灵活的预制体的创建或销毁呢?现在我们来尝试如下的实验。
-
步骤1: 制作一个预制体,该预制体上带有TimeLine功能,在该TimeLine中,利用Control Track实例化一个人物角色
创建带有TimeLine的预制体.png
利用ControlTrack创建人物角色.png -
步骤2: 在MoveToWave的TimeLine上,创建一个Control Track,并拖入步骤1中创建好的预制体Creation
在ControlTrack拖入预制体Creation.png -
步骤3: 查看执行结果
期望结果如下
1. 角色1执行完TimeLine的挥手动作
2. 触发Control Track上的实例化预制体Creation
3. Creation有Play On Awake的TimeLine,在Control Track上执行角色3的实例化,并出生在了原点
ControlTrack实例化预制体.gif
结论: Control Track中完全可以实例化另一个预制体,利用该工具可以有效地控制创建物体的生命周期
实验结束