Unity Timeline动态修改绑定资源

简介:

    使用Timeline可以非常方便的进行场景动画的创建和修改,包括物体、声音、粒子、动画、特效、自定义Playable以及子Timeline等多种资源进行整合,从而能够较方便的生成效果很棒的场景动画。

有些时候在使用Timeline进行过场动画制作,要在场景中新建Timeline后把指定要做动画的物体拖入轨道,这样可以在运行的时候,播放该轨道,但是很多时候,我们需要代码去动态设置轨道的资源。例如下图中,需要代码设置Cube为游戏运行时候的物体,此时该物体即可使用当前Track1轨道信息播放相应的动作。

Unity的PlayableDirector类中,可以获取到当前Timeline资源的所有轨道信息和轨道中的所有Clip信息,使用相应的API可以实现动态设置轨道的操作。

1.可以在Start函数中,使用Dictionary获取当前所有Binding轨道信息,key使用轨道名称:Animation Track, value即为当前轨道,这样所有的轨道信息都记录在当前字典中。


    private PlayableDirector playableDirector;
    private readonly Dictionary<string, PlayableBinding> bindingDict = new Dictionary<string, PlayableBinding>();
    private void Start()
    {
        playableDirector = GetComponent<PlayableDirector>();

        //开始的时候,储存所有轨道信息,轨道名称作为key,Track作为value,用于动态设置
        foreach (var bind in playableDirector.playableAsset.outputs)
        {
            if (!bindingDict.ContainsKey(bind.streamName))
            {
                bindingDict.Add(bind.streamName, bind);
            }
        }
    }

2.使用SetGenericBinding的方法,动态设置绑定轨道

    /// <summary>
    /// 动态设置轨道
    /// </summary>
    /// <param name="trackName"></param>
    /// <param name="gameObject"></param>
    public void SetTrackDynamic(string trackName, GameObject gameObject)
    {
        if (bindingDict.TryGetValue(trackName, out PlayableBinding pb))
        {
            playableDirector.SetGenericBinding(pb.sourceObject, gameObject);
        }
    }

3.这样既可在代码使用SetTrackDynamic方法后,讲场景中的物体动态设置到指定的轨道中。

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.csdn.net/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 ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值