Unity Timeline自定义轨道
三大继承类
(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自定义轨道相关推荐
- Unity - Timeline 自定义剪辑,轨道,混合轨道,Inspector属性显示(使用Default Playables辅助工具)
Timeline中,可以通过脚本扩展自定义的剪辑,轨道,混合轨道,Inspector属性显示器. 我这里参考了官方的 Default Playables的一个节点扩展方式,它也提供了一个辅助工具,非常 ...
- 【unity】Timeline自定义轨道
Timeline结构 Track轨道类 (轨道类,主要指定了轨道片段类.轨道关联对象类型.指定并创建轨道逻辑类) 继承之TrackAsset 例如Act ...
- 如何在Timeline中创建自定义轨道?
你好,我是跟着大智学Unity的萌新,我叫小新,这是我本周的学习总结报告哦. 用过一段时间Timeline后,我问大智:"Timeline中只有这么几个轨道么?我发现有的需求这些轨道根本没办 ...
- Timeline以及自定义轨道(对话轨道)
目录 创建Timeline 添加Track 添加Animation Track 添加Activation Track 添加Audio Track 添加对话轨道(自定义轨道) 可以同时操作多个模型的动画 ...
- Unity - Timeline 之 Muting tracks(屏蔽轨道)
目录:Unity - Timeline 知识汇总 原味:https://docs.unity3d.com/Packages/com.unity.timeline@1.2/manual/trk_mute ...
- Unity TimeLine使用教程
我使用的是Unity 2020.3.25,TimeLine版本是1.5.2. TimeLine可以添加以下几种Track 1.Activation Track一般用来控制GameObject的显示和隐 ...
- Unity Timeline运行时脚本控制Mute和UnMute(Mute/UnMute a timeline track via scripting)
Unity Timeline运行时脚本控制Mute和UnMute 最近遇到了一个问题就是希望能够在运行时脚本控制Timeline特定轨道的mute和unmute,本来以为是一个很简单的问题,结果发现并 ...
- unity Timeline控制动画的播放
unity Timeline控制动画的播放 创建一个空物体GameObject,添加Playable Director组件,添加脚本组件: 新建一个长方体: 创建timeline并将其拖到空物体的Pl ...
- Unity使用自定义资源(.asset)配置数据
本文原创版权归 强哥的私房菜 所有,此处为转载,如有再转,请于篇首位置标明原创作者及出处,以示尊重! 作者:强哥的私房菜 原文:http://blog.csdn.net/liqiangeastsun/ ...
- Unity - Timeline 之 Panning and zooming the Clips view(移动与缩放Clip剪辑视图)
目录:Unity - Timeline 知识汇总 原味:https://docs.unity3d.com/Packages/com.unity.timeline@1.2/manual/clp_pan_ ...
最新文章
- 在Ubuntu 16.04.3 LTS上玩转QUIC开源项目proto-quic
- 那些离开大厂,回归学术界的科学家们!
- [Android] Gradle 安装
- 11.5. blockquote
- Java byte 踩坑基础
- python 编程入门-Python编程入门电子书教程,看这几个就够了
- IDL关系运算符Eq Ne Le Lt Gt Ge含义说明
- Matlab第二章选择题填空题,matlab及其在大学物理中的应用第二章习题答案.doc
- 使用Matplotlib Numpy Pandas构想泰坦尼克号高潮
- 传图识字java_Java:全面 清晰的 NIO 学习攻略
- R中统计假设检验总结(一)
- 【OpenCV 例程200篇】11. 图像通道的拆分(cv2.split)
- jQuery教程08-属性筛选选择器
- 动态ip和静态ip的区别
- 玩通透 全面解析Windows双系统引导菜单
- Android 时区中英文显示对照
- 微信支付宝免签约支付方案
- 相亲角、地摊,暗访小县城的夜市
- mc服务器tps优化,[教程] 使用Openj9大幅降低MC的内存占用,提高FPS和TPS
- cmake:基于MDK(Keil)的Nationstech.N32G45x平台交叉编译工具链定义
热门文章
- 解决java.lang.ClassCastException class java.lang.Integer cannot be cast to class java.lang.Long异常
- 【备忘录】transformers tokenizer.tokenize和tokenizer.encode
- Unexpected bus error encountered in worker. This might be caused by insufficient shared memory(shm)
- 超级计算机浪漫展览,这是最独特的“中国式浪漫”
- 【Python表白小程序】表白神器——赶紧收藏起来~
- HDU4609 3-idiots fft
- (阅读笔记)脑中线偏移测量及其自动化技术与算法综述
- 程序员年后离职跳槽指南
- 2022年茶艺师(初级)考试练习题模拟考试平台操作
- c语言感叹号加一个括号,车上出现一个感叹号一个括号处理方法