三大继承类

(1)PlayableTrack  自定义轨道
(2)PlayableBehavior Playable行为控制
(3)PlayableAsset Playable数据来源

首先创建一个自定义逻辑类:

using UnityEngine;public class SayHello : MonoBehaviour
{public string TextContent;// Update is called once per framevoid Update(){Debug.Log(TextContent);}
}

PlayableTrack 自定义轨道

using UnityEngine;
using UnityEngine.Timeline;[TrackBindingType(typeof(MonoBehaviour))]
[TrackClipType(typeof(TextPlayableAsset))]
public class CustomTrack : PlayableTrack {
}

TrackBingdingType限定了它能控制得类型,TrackClipType限定了Playable数据来源的类型,在轨道中采样的数据从哪里获取得到。

PlayableBehavior Playable行为控制

using UnityEngine.Playables;// A behaviour that is attached to a playable
public class TextBehaviour : PlayableBehaviour
{public string Content;public override void ProcessFrame(Playable playable, FrameData info, object playerData){//通过下面的这句代码,即可在绑定过对象的轨道上进行传递参数的操作。playData就是我们放在轨道上面自定义的Asset。SayHello sayHello = playerData as SayHello;if (sayHello != null){ //对轨道绑定的对象进行值的传递。sayHello.TextContent = Content;}}
}

主要处理跟具体逻辑控制相关的代码,可以看到在这个类中,获取到当前物体上挂在的SayHello脚本,再对它的TextContent字段进行赋值。

PlayableAsset Playable数据来源

using UnityEngine;
using UnityEngine.Playables;[System.Serializable]
public class TextPlayableAsset : PlayableAsset
{public string TextContent;// Factory method that generates a playable based on this assetpublic override Playable CreatePlayable(PlayableGraph graph, GameObject go){
//通过下面的两行代码进行创建一个新的Playable(Script类型),然后通过GetBehavior来访问刚刚创建的var scriptPlayable = ScriptPlayable<TextBehaviour>.Create(graph);
//上方create实际接受两个参数,第一个参数是graph,第二个参数是我们创建的这个Playable接受几个输入,默认不填写那么就是0个输入。var scriptBehavior = scriptPlayable.GetBehaviour();scriptBehavior.Content = TextContent;
//返回刚刚创建出来的Playable,Unity会帮助我们自动的连线。return scriptPlayable;}
}

在这个类中,通过获取TextBehaviour脚本,然后完成对这个脚本中的数据的赋值,数据来源就保存在这个自定义的Asset中。

可以看到,通过Timeline添加自定义的轨道控制相关,可以达到自定义的逻辑控制的目的。

两个Asset数据定义分别为test1、test2。

 

控制台打印如下:

Unity Timeline自定义轨道相关推荐

  1. Unity - Timeline 自定义剪辑,轨道,混合轨道,Inspector属性显示(使用Default Playables辅助工具)

    Timeline中,可以通过脚本扩展自定义的剪辑,轨道,混合轨道,Inspector属性显示器. 我这里参考了官方的 Default Playables的一个节点扩展方式,它也提供了一个辅助工具,非常 ...

  2. 【unity】Timeline自定义轨道

    Timeline结构 Track轨道类         (轨道类,主要指定了轨道片段类.轨道关联对象类型.指定并创建轨道逻辑类)         继承之TrackAsset         例如Act ...

  3. 如何在Timeline中创建自定义轨道?

    你好,我是跟着大智学Unity的萌新,我叫小新,这是我本周的学习总结报告哦. 用过一段时间Timeline后,我问大智:"Timeline中只有这么几个轨道么?我发现有的需求这些轨道根本没办 ...

  4. Timeline以及自定义轨道(对话轨道)

    目录 创建Timeline 添加Track 添加Animation Track 添加Activation Track 添加Audio Track 添加对话轨道(自定义轨道) 可以同时操作多个模型的动画 ...

  5. Unity - Timeline 之 Muting tracks(屏蔽轨道)

    目录:Unity - Timeline 知识汇总 原味:https://docs.unity3d.com/Packages/com.unity.timeline@1.2/manual/trk_mute ...

  6. Unity TimeLine使用教程

    我使用的是Unity 2020.3.25,TimeLine版本是1.5.2. TimeLine可以添加以下几种Track 1.Activation Track一般用来控制GameObject的显示和隐 ...

  7. Unity Timeline运行时脚本控制Mute和UnMute(Mute/UnMute a timeline track via scripting)

    Unity Timeline运行时脚本控制Mute和UnMute 最近遇到了一个问题就是希望能够在运行时脚本控制Timeline特定轨道的mute和unmute,本来以为是一个很简单的问题,结果发现并 ...

  8. unity Timeline控制动画的播放

    unity Timeline控制动画的播放 创建一个空物体GameObject,添加Playable Director组件,添加脚本组件: 新建一个长方体: 创建timeline并将其拖到空物体的Pl ...

  9. Unity使用自定义资源(.asset)配置数据

    本文原创版权归 强哥的私房菜 所有,此处为转载,如有再转,请于篇首位置标明原创作者及出处,以示尊重! 作者:强哥的私房菜 原文:http://blog.csdn.net/liqiangeastsun/ ...

  10. Unity - Timeline 之 Panning and zooming the Clips view(移动与缩放Clip剪辑视图)

    目录:Unity - Timeline 知识汇总 原味:https://docs.unity3d.com/Packages/com.unity.timeline@1.2/manual/clp_pan_ ...

最新文章

  1. 在Ubuntu 16.04.3 LTS上玩转QUIC开源项目proto-quic
  2. 那些离开大厂,回归学术界的科学家们!
  3. [Android] Gradle 安装
  4. 11.5. blockquote
  5. Java byte 踩坑基础
  6. python 编程入门-Python编程入门电子书教程,看这几个就够了
  7. IDL关系运算符Eq Ne Le Lt Gt Ge含义说明
  8. Matlab第二章选择题填空题,matlab及其在大学物理中的应用第二章习题答案.doc
  9. 使用Matplotlib Numpy Pandas构想泰坦尼克号高潮
  10. 传图识字java_Java:全面 清晰的 NIO 学习攻略
  11. R中统计假设检验总结(一)
  12. 【OpenCV 例程200篇】11. 图像通道的拆分(cv2.split)
  13. jQuery教程08-属性筛选选择器
  14. 动态ip和静态ip的区别
  15. 玩通透 全面解析Windows双系统引导菜单
  16. Android 时区中英文显示对照
  17. 微信支付宝免签约支付方案
  18. 相亲角、地摊,暗访小县城的夜市
  19. mc服务器tps优化,[教程] 使用Openj9大幅降低MC的内存占用,提高FPS和TPS
  20. cmake:基于MDK(Keil)的Nationstech.N32G45x平台交叉编译工具链定义

热门文章

  1. 解决java.lang.ClassCastException class java.lang.Integer cannot be cast to class java.lang.Long异常
  2. 【备忘录】transformers tokenizer.tokenize和tokenizer.encode
  3. Unexpected bus error encountered in worker. This might be caused by insufficient shared memory(shm)
  4. 超级计算机浪漫展览,这是最独特的“中国式浪漫”
  5. 【Python表白小程序】表白神器——赶紧收藏起来~
  6. HDU4609 3-idiots fft
  7. (阅读笔记)脑中线偏移测量及其自动化技术与算法综述
  8. 程序员年后离职跳槽指南
  9. 2022年茶艺师(初级)考试练习题模拟考试平台操作
  10. c语言感叹号加一个括号,车上出现一个感叹号一个括号处理方法