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) {}
}
Unity TimeLine的更多相关文章
- Unity TimeLine 资源结构
---恢复内容开始--- 先看一个TimeLine,如图 再来看看在Inspector中的PlayableDirector 其他参数字面意思很清楚了不再赘述,着重讲一下一个TimeLine绑定的资源. ...
- Unity Glossary
https://docs.unity3d.com/2018.4/Documentation/Manual/Glossary.html 2D terms 2D Physics terms AI term ...
- UnityEditorWindow做一个TimeLine的滑动块
UnityEditorWindow做一个TimeLine的滑动块 最近在做一个基于TimeLine的动画编辑器,在制作TineLine滑动条时遇到问题,网上查了好久,试了好多GUI组件都不满意.最后在 ...
- ILRuntime 学习
ILRuntime: https://github.com/Ourpalm/ILRuntime Demo: https://github.com/Ourpalm/ILRuntimeU3D 中文在线文档 ...
- Unity User Group深圳站——Timeline & Cinemachine分享
报名说明:UUG深圳站,2月分享活动正式启动,1月29日中午12:00前报名可获赠Unity精美纪念礼物一份~ 关于Unity Unity 是一款多平台的综合型游戏开发工具,它的出现对蓬勃发展的全球游 ...
- Spine用于Timeline(NullReferenceException: Object reference not set to an instance of an object pine.Unity.Editor.AnimationReferenceAssetEditor.OnInspectorGUI ())
报错信息:Spine.Unity.Editor.AnimationReferenceAssetEditor.OnInspectorGUI () (at Assets/Extention/Spine/E ...
- unity过场动画组件Timeline
Timeline是Unity2017版本中新加入的功能,可以非常方便的进行场景动画的创建和修改,包括物体.声音.粒子.动画.特效.自定义Playable以及子Timeline等多种资源进行整合,从而能 ...
- Unity中的动画系统和Timeline(5) Timeline
在前面的动画,都是控制单独的物体,比如说控制一个角色的运动.而Timeline,可以对多个物体实施动画,形成过场动画,或者电影效果.比如,很多赛车游戏比赛开始前都会播放一段开场动画,围绕自己车的几个方 ...
- Unity中的动画系统和Timeline(2) 按钮动画和2D精灵动画
按钮动画 1 创建按钮后,按钮的Button组件中,Transition我们平时用的时Tint,这次选择Animation 选择Auto Generate Animation,创建一个按钮动画 2 后 ...
随机推荐
- Linux下Springboot解决`APR based Apache Tomcat Native library`提示
最近转行做java,开发基于Springboot的项目,版本号为2.1.0.RELEASE. 启动应用,发现以下提示: The APR based Apache Tomcat Native libra ...
- cassandra读源码---Streaming
前言 cassandra的很多过程需要网络传输模块,需要在各个节点直接发送文件.包括加入节点,删除节点引起的不同节点的负责ring环的key值发生了变化,导致sstable需要在各个节点中移动. 整体 ...
- android学习笔记--Scanner
private static List<String> getxxxx(Context ctx) { try { Scanner sc = new Scanner( ctx.openFil ...
- webstorm使用问题总结
webstorm 打断点调试配置 run/edit configurations中,把nodejs里的历史都删除:然后打开Defaults/Node.js将node的可执行程序放到Node inter ...
- 一个适合.NET Core的代码安全分析工具 - Security Code Scan
本文主要翻译自Security Code Scan的官方Github文档,结合自己的初步使用简单介绍一下这款工具,大家可以结合自己团队的情况参考使用.此外,对.NET Core开发团队来说,可以参考张 ...
- 两个案例轻松理解MyBatis中的TypeHandler!
在做开发时,我们经常会遇到这样一些问题,比如我有一个Java中的Date数据类型,我想将之存到数据库的时候存成一个1970年至今的毫秒数,怎么实现?再比如我有一个User类,User类中有一个属性叫做 ...
- PermissionDialog【权限申请提示对话框】
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 随着Android6.0的普及,权限申请也变成了我们开发中必写的一段代码.比如sd卡权限.定位权限.拍照权限,这些几乎都是每个app ...
- 原子操作&普通锁&读写锁
一:原子操作CAS(compare-and-swap) 原子操作分三步:读取addr的值,和old进行比较,如果相等,则将new赋值给*addr,他能保证这三步一起执行完成,叫原子操作也就是说它不能再 ...
- 【spring实战第五版遇到的坑】3.1中的例子报错
按照书中的例子,一直做到第3.1章使用JDBC读写数据时,在提交设计的taco表单时,报了如下的异常信息: Failed to convert property value of type java. ...
- Myeclipse10.7添加本地插件方法
-