Unity TimeLine跨场景动态绑定对象

这篇具有很好参考价值的文章主要介绍了Unity TimeLine跨场景动态绑定对象。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Unity TimeLine跨场景动态绑定对象

问题描述

在unity TimeLine使用时,想要控制某个物体上的对象,直接将场景中该物体拖拽到对应的PlayableDirector的Track上即可。但如果希望控制的物体是动态生成的,或TimeLine作为Prefab的一部分出现在其他场景中,又希望控制场景中的物体等等,在不能使用拖拽指定或资源选择指定资源的情况下,希望在游戏运行时动态绑定控制的目标对象到TimeLine。文章来源地址https://www.toymoban.com/news/detail-686529.html

solution

  • 一个mono脚本用以在生命周期事件中获取物体信息
  [RequireComponent(typeof(PlayableDirector))]
   public class TimelineHelperDemo : MonoBehaviour
   {
      public void Start()
       {
          //在Mono脚本中拿到希望控制的物体
          var obj = ……(your script) as GameObject;
          //拿到PlayableDirector
          PlayableDirector playableDirector = GetComponent<PlayableDirector>();
       }
   }
  • PlayableDirector扩展方法方便获取资源轨道(TrackAsset)

        public static T GetTrackAsset<T>(this PlayableDirector playableDirector, string trackName) where T : TrackAsset
       {
           return playableDirector.GetPlayableBinding(trackName).sourceObject as T;
       }
  • 在mono脚本中获取对应轨道并动态绑定到PlayableDirector
   [RequireComponent(typeof(PlayableDirector))]
   public class TimelineHelperDemo : MonoBehaviour
   {
      public void Start()
       {
          //在Mono脚本中拿到希望控制的物体
          var obj = ……(your script) as GameObject;
          //拿到PlayableDirector
          PlayableDirector playableDirector = GetComponent<PlayableDirector>();
           
           //举例 希望控制的是一个AnimationTrack
           var animTrack =  playableDirector.GetTrackAsset<AnimationTrack>(TrackName);

           if (obj is { })
           {
           	  //根据TrackAsset的不同,绑定对象类型也有不同 具体看TrackAsset
           	  //需要手动转换绑定对象为TrackAsset支持的控制对象
              playableDirector.SetGenericBinding(animTrack,obj);
           }
       }
   }

到了这里,关于Unity TimeLine跨场景动态绑定对象的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity TimeLine循环播放某个时间段

    1、设置Playable Director的Update Method为GameTime模式 2、API : using UnityEngine.Playables; 我们需要用到PlayableDirector的time属性 3、设置开始和结束时间段(使用的帧率)我在0-158帧循环和158到290帧之间循环 4、代码 代码笔记

    2024年02月11日
    浏览(55)
  • 解决Unity打包后Timeline里部分特效没显示的bug

    比较诡异的问题,美术同学给过来的特效资源,在Edtior里是正常播放的,但打包后特效里应该落下来的光柱却消失了。 考虑到打包后的环境和Editor环境的区别 AssetBundle 通过在Editor里加载AssetBundle来播放,发现也是正常的,应该不是资源问题。 ParticleSystem的Culling Mode 粒子系统

    2023年04月08日
    浏览(43)
  • Unity Timeline在编辑器下正常,真机(模拟器、手机)不正常播放问题

    出现这个问题很大可能是因为设置了 Managed Stripping Level = Low 只需要改成 Managed Stripping Level = Medium就可以正常播 或者改Assets/link.xml没有就新建 如果还是不能播放,可以考虑下是不是资源打包出问题了。 上面的代码裁剪掉的明显特征是,真机运行log会出现: The referenced script (U

    2024年03月13日
    浏览(98)
  • Unity Timeline学习笔记(3) - SignalTrack信号轨道和自定义带参数的Marker信号和轨道

    信号轨道,顾名思义就是运行到某处发送一个信号。 普通用法就是没有任何封装的,个人感觉特别难用,但是有必要理解一下工作原理。 添加信号 我们添加一个信号资源 生成后可以看到资源文件,这个是可以拖到SignalTrack上的。 我们在Timeline上添加两个信号轨道,并拖动信

    2024年04月13日
    浏览(34)
  • Unity 之 GameObject.Find()在场景中查找指定名称的游戏对象

    GameObject.Find 是 Unity 中的一个函数,用于在场景中查找指定名称的游戏对象。这个函数的主要作用是根据游戏对象的名称来查找并返回一个引用,使您能够在代码中操作该对象。以下是有关 GameObject.Find 的详细介绍: 函数签名: 使用方法: 您可以通过将游戏对象的名称作为参

    2024年02月10日
    浏览(38)
  • element-ui——timeline时间线组件+自动滚动+v-infinite-scroll无限滚动+动态加载——技能提升

    最近看到同事在弄日志记录,需要实现的效果是: 最终效果图如下: 解析: 为了实现无限滚动,需要做两块一模一样的内容来回交替显示,也就是上面代码中的id=\\\"timeline1\\\"和id=\\\"timeline2\\\"了

    2024年02月11日
    浏览(44)
  • CSS 滚动驱动动画 view-timeline (view-timeline-name ❤️ view-timeline-axis )

    我们之前在 scroll() 中提到了一个因为绝对定位导致滚动无效的问题, 并使用 scroll-timeline 成功解决了这个问题, 而 scroll-timeline 起到的作用就是指定到底是哪个元素提供 scroll progress timeline . 与此相似, view-timeline 定义了一个具名的 view progress timeline , 通过滚动容器( scroller )中的某

    2024年02月08日
    浏览(36)
  • 【UE4】TimeLine(蓝图)

    虚幻中的数据时间轴计数器,作用是将时间和数据进行组合,使得数据随着时间的改变发生变化。 可以将TimeLine理解为一个直角坐标系,横轴为时间,纵轴为数据。 输入针脚: Play :启动此时间轴 Play from Start :从开始的时候启动此时间轴 Stop :结束 Reverse :反方向走时间轴

    2023年04月24日
    浏览(62)
  • 【Python】pyecharts 模块 ⑦ ( 绘制时间线柱状图 | 时间线 Timeline 简介 | 时间线 Timeline 柱状图开发要点 | 播放设置 | 主题设置 | 代码示例 )

    pyecharts 画廊网站 : https://gallery.pyecharts.org/#/ 在该网站可查看官方示例 pyecharts 时间线柱状图 中的 时间线 , 就是与 x 轴平行的一个 时间轴 ; 时间线 的类是 Timeline , 定义在 pyecharts.charts 模块中 ; 在 时间线 上的每个点 , 都代表一个时间点 , 为 时间线 上的 每个 时间点 都提供一

    2024年02月15日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包