先上效果图。由于中间切换窗口,所以timeline卡了一下:
只需要关注最下侧 start 和 jumptoStart(其它轨道请自动忽略)
上图主要实现timeline的控制: 共20秒,在第5秒加个标记,当播放到第10秒时根据条件决定=》继续播放 or 从第10秒跳到第5秒循环播放.
一.自定义一个轨道Track :TrackAsset 和 PlayableBehaviour
二.自定义轨道上的一个Clip: PlayableAsset 和 PlayableBehaviour
三.自定Track和Clip中的 PlayableBehaviour 可以共用同一个,也可以各用各的。
1.自定义Track中设置绑定和绑定的使用:


2.轨道TrackAsset脚本说明
当自定义Clip之间有融合时,也需要声明使用CreateTrackMixer函数。
融合是依据每个Clip的权重weight进行计算此处不再过多描述。

3.Track中使用的PlayableBehaviour脚本说明:

4.Clip中的PlayableBehaviour的说明:

5.Clip中PlayableAsset的

需要用的重要的api:
获取到PlayableDirector:
PlayableBehaviour:playable.GetGraph().GetResolver() as PlayableDirector;
PlayableAsset:graph.GetResolver() as PlayableDirector
下面附上整体的脚本:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Playables;
using UnityEngine.Timeline;
[TrackClipType(typeof(ClipAssets))]
[TrackColor(1f,1f,1f)]
[TrackBindingType(typeof(Light))]
//[System.Serializable]
public class TrackOneAssets : TrackAsset
{
public override Playable CreateTrackMixer(

这篇博客详细介绍了如何在Unity中自定义Timeline轨道TrackAsset和PlayableBehaviour,以及自定义Clip。通过创建TrackOneAssets类,实现了在20秒的Timeline中在第5秒添加标记,并在播放到第10秒时根据条件决定是否跳回第5秒循环播放。博客内容涵盖了TrackAsset的CreateTrackMixer方法、PlayableBehaviour的ProcessFrame方法,以及ClipAssets和ClipBehaviour的使用,包括条件判断和时间跳转功能。
最低0.47元/天 解锁文章
3922

被折叠的 条评论
为什么被折叠?



