找回密码
 立即注册
查看: 476|回复: 0

Unity Timeline扩展研究之基础篇(一)

[复制链接]
发表于 2022-5-26 10:41 | 显示全部楼层 |阅读模式
一、Timeline简介

timeline是unity自带的时间线插件,可以很好的实现cg,动效等内容。同时扩展简单,是游戏开发不可获取的一个重要组件。本文主要简单介绍一下timeline,重点在于扩展timeline的相关知识。
1.1 菜单入口

   Window->Sequencing->Timeline
1.2 Track简介

timeline由多条轨道构成,轨道可以自定义,unity本身自带的轨道如图1所示。



图1

1) Track Group
Track组,可以放多个track,可以用来按组分类划分
2) Activation Track
激活Track,用来控制GameObject是否激活
3) Animation Track
用来控制Animation的播放
4) Audio Track
用来控制Audio的播放
5) Control Track
用来控制prefab、特效、gameobject等的时间线控制,且在clip外会自动销毁
6) Signal Track
用来发射信号,出发事件
7) Playable Track
用户自定义的轨道
二、Signal介绍

信号,是timeline触发事件的媒介,因为其具有广播的性质,所以比event的名字更适合
2.1 如何添加信号

1)右击任何一个Track,在弹出的菜单栏中点击Add Signal Emitter即可添加信号



图2

2)信号添加好后,会出现下图中的游标,带警告的游标说明没有选择要触发的信号类型(Emit Signal为none)



图3

3)选中Signal游标,在检视版中选择触发的信号类型



图4

4)Signal选好后,需要在下方添加一个Signal Receiver用来选择接收信号的方法,同按钮点击事件,不在赘述



图5

5)至此当timeline播放到signal游标处就会触发对应的事件了,(注意,signal触发的事件,只有signal所在track上的对象上的signal receiver生效)
2.2 如何添加带参信号

1)继承SignalEmitter,实现一个新的信号触发器,并在其中加入新的参数



图6

2)添加自定义的信号。当创建了新的SignalEmitter时,timeline会在原添加信号菜单处加入添加新信号的菜单



图7

3)选择信号类型同普通信号。
4)signal receiver需要自己实现,在挂在track的对象上,这个时候就可以通过 notification获取带参信号的参数了!



图8

三、关于自定义Track

timeline很强大,除了自带的轨道,还可以自己定义轨道,从而能够根据自身需要添加timeline clip
3.1 自定义新轨道

1)很简单,继承TrackAsset就可以了



图9

2)这个时候右击timeline的菜单中就出现自定义的轨道了



图10

3)track常用的3条特性  
    1>[TrackColor(0,0,0)]控制轨道flag的颜色
    2>[TrackClipType(typeof(TestDemoAsset1))] 可以添加哪些clip类型
    3>[TrackBindingType(typeof(TestTimeline))] 指定可以使用此track的对象类型
3.2 自定义新clip类型

1)创建playableasset和playablebehaviour



图11

2)自定义asset的参数,且参数需要通过对应的behaviour传递



图12

3)实现behaiour



图13

4)至此自定义的clip就创建完成了
3.3 关于混合behaviour

1)混合behaviour主要用于处理两个clip重叠部分的表现。



图14

2)创建混合baviour。需要在track类里创建。



图15

3)实现混合behaviour。和clip的behaviour一样,只是要根据多个clip的权重,来调整behaiour效果



图16

四、结语

不得不说,timeline真是个好东西,过去自己用IMUI画时间线还挺麻烦的,有了这个实现起来真是超简单,感谢提供如此方便的工具!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-12-23 02:37 , Processed in 0.092908 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表