Unity TimeLine之Control Track

作者: 我是糖大大 | 来源:发表于2019-07-26 17:01 被阅读1次
    前言

    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中完全可以实例化另一个预制体,利用该工具可以有效地控制创建物体的生命周期


    实验结束

    END

    相关文章

      网友评论

        本文标题:Unity TimeLine之Control Track

        本文链接:https://www.haomeiwen.com/subject/rqcdrctx.html