Unity TimeLine

最近一直再看这方面的内容,看的比较多知识点比较分散,所以目的就是把这些知识点内容梳理一边,并作记录。

PlayableDirector与TrackAsset,TrackAsset与PlayableAsset都是一对多的关系,并且TrackAsset和PlayableAsset都可以用PlayableBehaviour来定义行为。

Asset用来保存数据,Behavior用来定义行为

最初Playable轨道元素只需继承basesasdadwdqw,现在无论是轨道(Track)还是轨道元素(TrackClip)都拆分为两个部分Asset(数据)和PlayableBehavior (行为),

下面举一个简单的例子。

 

1,添加自定义轨道

public class ConditionTrack : TrackAsset

添加轨道行为类

public class ConditionTrackBehaviour : PlayableBehaviour

将ConditionTrackBehaviour绑定轨道资源的混合器中

public class ConditionTrack : TrackAsset
{

    public override Playable CreateTrackMixer(PlayableGraph graph, GameObject go, int inputCount)
    {
        var playable = ScriptPlayable<ConditionTrackBehaviour>.Create(graph, inputCount);
        return playable;
    }

}

2,创建自定义轨道资源 ConditionClip

[System.Serializable]
public class ConditionClip : PlayableAsset

添加资源的行为类

public class ConditionBehaviour : PlayableBehaviour

在创建ConditionClip资源时绑定ConditionBehaviour

[System.Serializable]
public class ConditionClip : PlayableAsset
{
    public ConditionBehaviour ConditionBehaviour = new ConditionBehaviour();

    public override Playable CreatePlayable(PlayableGraph graph, GameObject go) {
        var playable = ScriptPlayable<ConditionBehaviour>.Create(graph, ConditionBehaviour);
        ConditionBehaviour clone = playable.GetBehaviour();
        return playable;
    }
}

3,轨道指定绑定资源类型

[TrackClipType(typeof(ConditionClip))]
public class ConditionTrack : TrackAsset

这样的话,在ConditionTrack中就可以指定创建ConditionClip类型的PlayableAsset

 

 

 

常用API简介

TrackAsset
对于轨道上的每一个实例对于轨道都是一个TimelineClip类型,并且可以通过GetClips()来获取实例群
public class ConditionTrack : TrackAsset
{
    //在轨道上创建轨道资源时调用
    public override Playable CreateTrackMixer(PlayableGraph graph, GameObject go, int inputCount){}
}
PlayableAsset
public class ConditionClip : PlayableAsset
{
    //创建实例时调用
    public override Playable CreatePlayable(PlayableGraph graph, GameObject go) {}
}
PlayableBehaviour
TrackAsset,PlayableAsset对应的行为都是一样的PlayableBehaviour
public class ConditionClip: PlayableBehaviour
{
    // 再创建实例时调用
    public override void OnPlayableCreate(Playable playable){}

// 当开始执行此状态时调用 public override void OnBehaviourPlay(Playable playable, FrameData info) {} // 当离开此状态,或者编辑器停止运行时调用 public override void OnBehaviourPause(Playable playable, FrameData info) {} // 在此状态中运行时每帧调用 public override void PrepareFrame(Playable playable, FrameData info) {} }

 

转载于:https://www.cnblogs.com/Jean90/p/10496564.html

Unity TimelineUnity引擎中的一个功能强大的工具,用于创建和编辑时间轴动画序列。它允许开发人员以可视化的方式组织、调整和控制游戏中的动画、音频和事件。通过使用Unity Timeline,开发人员可以轻松地创建复杂的动画序列,而无需编写大量的代码。 Timeline播放指针是Timeline中的一个重要元素,它代表了在预览时的精确时间点。可以通过点击Timeline的时间轴或在播放指针位置的输入框内输入时间值来将播放指针放在特定的时间。输入的数字会根据Timeline的设置转化成秒或帧数。例如,如果Timeline的时间轴表示秒且每秒有30帧,当输入180时,输入框中的值会转化成秒,并将播放指针移动到6:00的位置。 Unity Timeline还提供了Track视图,通过Track视图可以对游戏对象的属性、动画、音频和事件进行编辑和控制。可以在Track视图中创建和管理各种类型的轨道,包括动画轨道、音频轨道和事件轨道等,以便对不同类型的内容进行组织和管理。 总之,Unity Timeline是一个可以帮助开发人员创建和编辑时间轴动画序列的工具,通过它可以实现对动画、音频和事件的可视化控制和组织。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [[干货分享]Unity3D 深入解析Timeline编辑器](https://blog.youkuaiyun.com/momohou2000/article/details/106189543)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值