关于Unity的TimeLine的梳理

最近在Unity官网上看了 M_Studio 的timeline的介绍,于是想看看代码中如何操作timeline。

于是 我先看了官方文档对Timeline的介绍,然后从网上找资料看如何代码控制,看的糊里糊涂的。

建议看完手册 Timeline的介绍,看下“动画”里面“PlayablesAPI”一节,最后再看脚本API里面的Playables里面的代码。

大概过程:关于Unity的TimeLine的梳理

首先抛开TimeLine,学习一下图,就是PlayableGraph,图是一个整体。图里面有输出线,如上图。里面的内容分为两种:Output和Playable。新建个图,使用图创建Output,使用动画clip,声音clip,或者脚本 这些原始资源,创建Playable对象,最后将Output和Playable连接在一起,最后执行图的Play函数。

再来说TimeLine,TimeLine就是用图去播放动画声音脚本的。TimeLine有个控制器PlayableDirector,它里面有个变量playableAsset类型为PlayableAsset,它就是可播放的资源,就是保存下来的TimeLine资源。PlayableAsset里面有outputs变量,他是各个Track,它里面的属性:

streamName 轨道名称

sourceObject 对于Animation来说他是用来绑定对象的key,修改绑定的对象,SetGenericBinding(key, newObj);key就是这个值;

                       你可以将它强制转换(PlaytableTrack)sourceObject; 得到Track,通过Track还可以GetClips获取所有的片段。

总结来说,TimeLine用PlayableAsset,PlayableBehaviour,PlayableBinding,TimelineClip 等对 图进行了外包装。包装完之后,我们就能在编辑器中拖来拖去了。