Unity 版本号:2019.3.0f6
TimeLine 是 unity2017 推出的新功能,其采用时间线的形式组合场景资源, 可以用于编排游戏剧情,过场动画,斩杀镜头,人物特写等效果。
创建TimeLine
用于播放 TimeLine 的物体必须有这个组件:
参数名 | 作用 |
---|---|
Playable | Playable资源(TimeLine资源) |
Update Method | 更新模式 |
Play On Awake | 是否启动时自动播放 |
Wrap Mode | 结束模式,None播放完回到原先属性,Loop循环播放,Hood播放完维持改变 |
Initial Time | 延迟时间 |
轨道面板
点击左侧的+,可以添加轨道,这是一个类似视频剪辑的界面,我们可以方便的对轨道进行移动和剪辑。
Activation
Activation 用于表示物体的激活状态:
Animation
Animation 用于播放动画,既可以播放已有的动画,也可以自己录制帧动画来使用。
注意:使用此轨道的物体会被创建一个 Animator Controller,这个组件不能被删除。
Audio
Audio 轨道用于播放音效,如果不指定 AudioSource 就无法细致调节效果。
每个轨道在属性面板都有不同的属性,Audio 面板如下:
!{Audio 属性}(http://pic.fasty97.top/blog/20200210/GoEDb7qbdSHR.png)
Control
Control 轨道和 Activation 轨道有点相似,但不同的是 Control 轨道可以同时控制多个物体的激活状态。
Signal-任意轨道
Signal 是非常重要的轨道,在使用 TimeLine 时,你可能会有这样的想法,能不能在时间线上,调用我们自定义的方法呢,在 2019 之前可以通过剪辑间接的完成事件的调用;但现在有了 Signal 轨道的加持,我们可以非常方便的在任意时刻调用方法了。
创建一个简单的测试脚本,并将脚本挂载在游戏物体上。
public class SignalTest : MonoBehaviour | |
{ | |
public void Show() | |
{ | |
Debug.Log("Signal!"); | |
} | |
} |
右键单击任意轨道:
此时在属性面板中,可以看到:
为了监听这个事件,unity 提示我们缺少一个监听器,点击 Add 添加一个。
添加好监听器,我们需要创建一个监听实例,这个实例是可以复用的。
完成以上步骤我们发现原先有警告的小白标变成了白色。这说明我们设置正确了,然后我们需要绑定事件给实例:
尝试运行(播放游戏)一下发现在时间轴运行到小白标时会自动调用我们绑定的方法。
Signal-指定轨道
上面实现的 Signal 是针对于任意轨道来说的,如果我们需要很多的 Signal 处理起来可能会发生混乱,所以官方提供了专门的 Signal 轨道。
先给我们的物体添加:
在属性面板中我们可以对事件实例绑定多个方法,统一管理:
小技巧
在轨道左侧可以点击三点,然后选择 Mute(静音)对指定轨道进行屏蔽。
在右侧轨道面板中,可以通过重叠区块实现 2 个区块之间的过渡效果。
可设置轨道的淡入淡出效果:
驱动摄像机
做了一个超级丑的摄像机变换效果:
代码驱动TimeLine
有时候我们可能需要通过代码动态的启动 TimeLine,这也很容易实现:
public class Signal : MonoBehaviour | |
{ | |
public PlayableDirector playDir; | |
public void Fac() | |
{ | |
Debug.Log("Fac.."); | |
} | |
private void Update() | |
{ | |
if (Input.GetKeyDown(KeyCode.A)) | |
{ | |
print("A"); | |
playDir.Play(); | |
} | |
} | |
} |