Timeline调用实质
本文地址:https://blog.csdn.net/t163361/article/details/114371261
19年左右调研Timeline的相关文档
PlayableDirector:
导演,控制timeline的播放,停止等等,
PlayableDirector.playableAsset:
播放资产,outputs
PlayableBinding :
绑定,记录的是outputs,以上三者的关系就是 Director 含有一个资产,资产上有一些列绑定,其实就是 一个timeline上有好多绑定,存在一个资产上
Playable:
Playable是一个可以扩展的一个概念,大概的意思就是一个track就是一个playable
包括一些内置的和自定义的
自定义的类似这些一样的,
有用的代码:
从一个playable里提取数据并进行存储
public void Init(string name, PlayableDirector director, PlayableAsset asset)
{
director.playableAsset = asset;
this.name = name;
this.director = director;
this.asset = asset;
bindings = new Dictionary<string, PlayableBinding>();clips = new Dictionary<string, Dictionary<string, PlayableAsset>>();foreach (var o in asset.outputs){var trackName = o.streamName;bindings.Add(trackName, o);var track = o.sourceObject as TrackAsset;var clipList = track.GetClips();foreach (var c in clipList){if (!clips.ContainsKey(trackName)){clips[trackName] = new Dictionary<string, PlayableAsset>();}var name2Clips = clips[trackName];if (!name2Clips.ContainsKey(c.displayName)){name2Clips.Add(c.displayName, c.asset as PlayableAsset);}}}
}设置bindingpublic void SetBinding(string trackName, Object o)
{director.SetGenericBinding(bindings[trackName].sourceObject, o);
}
获取
public T GetTrack(string trackName) where T : TrackAsset
{
return bindings[trackName].sourceObject as T;
}
public T GetClip<T>(string trackName, string clipName) where T : PlayableAsset
{if (clips.ContainsKey(trackName)){var track = clips[trackName];if (track.ContainsKey(clipName)){return track[clipName] as T;}else{Debug.LogError("GetClip Error, Track does not contain clip, trackName: " + trackName + ", clipName: " + clipName);}}else{Debug.LogError("GetClip Error, Track does not contain clip, trackName: " + trackName + ", clipName: " + clipName);}return null;
}
Timeline调用实质相关推荐
- SEXTANTE中调用任意C++控制台程序的简单例子
在sextante中单纯利用python或者调用sextante已有算法进行自定义开发,很多情况下速度不咋给力,同样的操作调用QGIS的C++插件比用sextante里的算法要快,有时候快的 还不止一 ...
- nodejs 调用阿里云短信
最近公司使用nodejs调用阿里云短信接口发送短信,网上找了很多示例都不行,给的那些都不能正常使用.下面给出我调用成功的示例. 阿里云短信调用实质上就是构建一个http请求可以是post也可以是get ...
- Hexo博客加时间线timeline功能
博客链接 由于本人比较懒,所以就懒的修改格式啥的了,去博客中看,效果可能会更好~ 主题Next下,貌似没有时间线这个功能,网上搜了很多,没有找到一个非常简单的处理方式,网上大多的处理方式是,(1)根据 ...
- Java 授权内幕--转载
在信息安全性领域,授权是世界的的中心,因为它是控制个体(即人.进程和计算机)对系统资源的访问权限的过程.直到最近,在 Java 安全体系结构中相关的问题都是"这段运行中的代码的访问权限是什么 ...
- python 类继承与子类实例初始化
__init__方法介绍: 如果其基类也具有__init__(), 必须显式地在__init__()调用它, 以保证能够适当地初始化它的基类部分;例如: BaseClass.__init__(self ...
- vuex中store 的mutation
vuex中store 的mutation 1.mutation 官方解释mutation: 更改 Vuex 的 store 中的状态的唯一方法是提交 mutation.Vuex 中的 mutation ...
- Vue状态管理vuex
转: https://www.cnblogs.com/xiaohuochai/p/7554127.html 前面的话 由于多个状态分散的跨越在许多组件和交互间各个角落,大型应用复杂度也经常逐渐增长.为 ...
- vuex的计算属性_Vuex详细介绍
1. 什么是Vuex Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.这是官网的说法,其实很简单:就是一个加强版的data! 在单页应用中会有一个data函数,里面就存放了当前页面的一 ...
- C,C++,C#note
1.c++中的类的定义和声明可以都写在头文件中,然后cpp文件include头文件:也可以声明在头文件,定义在cpp文件:或者所有声明和定义都放在cpp文件:混写定义与声明在头文件与cpp文件也可以: ...
- 近似算法的近似率_选择最佳近似最近算法的数据科学家指南
近似算法的近似率 by Braden Riggs and George Williams (gwilliams@gsitechnology.com) Braden Riggs和George Willi ...
最新文章
- centos6.5离线安装gcc gcc++ rpm
- php while 存钱,php趣味编程 -php存钱的问题
- 2021级山西高考成绩查询时间,2021山西高考成绩什么时候出
- wangEditor 上传图片,回调函数 Cannot read properties of undefined
- BIOS中断相关资料和应用
- matlab程序生成.dll,matlab 调用fortran生成DLL
- php 字符串 字典序序排序,C++ 怎么实现字典序排序法,自然排序
- 调制深度,峰均值功率比,脉冲整形等因素对于调制损耗的影响...
- Linux服务器备份mySQL数据库_远程linux服务器mysql数据库定期备份和删除
- voxelnet_苹果最新机器学习论文:使用VoxelNet进行3D物体检测
- Java从入门到入土
- ElasticJob‐Lite:更换事件追踪数据源应用启动报错
- 75 颜色分类(排序)
- 巧妙设置XP 家庭或小型办公网络图解
- UVM中drain_time使用
- Oracle、mysql产品性能优化总结
- 多线程学习--案例-子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次
- 类图之实体之间的关系
- 关于jupyter的故障重启(学习笔记)
- char、int、long它们各占几个字节?占几位?