当前位置: 首页 > news >正文

做药的常用网站百度普通版下载

做药的常用网站,百度普通版下载,品牌建设计划,开通企业网站自定义TimeLine 什么是TimeLineData(数据)Clip(片段)Track(轨道)Mixer(混合) 什么是TimeLine 在 Unity 中,TimeLine(时间轴)是一种用于创建和管理…

自定义TimeLine

        • 什么是TimeLine
        • Data(数据)
        • Clip(片段)
        • Track(轨道)
        • Mixer(混合)

什么是TimeLine

在 Unity 中,TimeLine(时间轴)是一种用于创建和管理动画序列的工具。它是 Unity 的一个可视化编辑器窗口,用于创建复杂的、时间驱动的动画、剧情和交互式体验。

Timeline 提供了一系列功能和资源,例如轨道(Track)、片段(Clip)、混合器(Mixer),数据(Data)等,用于组织和控制动画序列。你可以在 Timeline 上创建不同类型的轨道,如动画轨道、音频轨道、事件轨道等,然后将相应的片段添加到轨道上,并在时间轴上安排它们的播放顺序和属性变化。简单的可以理解为timeline就是这四个基本组成的。

了解了上述关于TimeLine的基本介绍之后就到了本篇的重点了,如下。我们只要实现这四个部分就是能自定以TImeLine了。

  • Data : 数据

  • Clip : 片段(放在轨道上的一段动画数据或片段)

  • Mixer:混合(将两个片段按照一定的规则进行融合)

  • Track :轨道(clip和Mixer的载体负责管理和组织)

Data(数据)

继承PlayableBehaviour
在这个类中一般我们只放数据,需要注意的是,这个类中存放的仅仅只是一个模板,真正的数据会在Clip中创建。

using UnityEngine.Playables;public class DataBehaviour : PlayableBehaviour
{public Transform exampleValue;
}

Clip(片段)

继承PlayableAsset 并实现ITimelineClipAsset。
注意:我们上面说了data中的是模板而Clip中才是我么珍重要用到的数据。下面的代码有点不好理解。现在把我们的Timeline比作一场演出,Data是存在Clip中的一些变量,我们把Clip当作一个剧本,但是我们要的是一场演出,光有剧本显然是不行的,我们需要把我们的剧本装换位我们想要的演出这个转换就是CreatePlayable。

using UnityEngine;
using UnityEngine.Playables;
using UnityEngine.Timeline;public class TextDataClip : PlayableAsset,ITimelineClipAsset
{private DataBehaviour template;// 是否需要混合 Clip.None 不需要混合,blending 需要融合public ClipCaps clipCaps => ClipCaps.Blending;//需要把你想要展示的数据暴露出来,不然无法进行引用。public ExposedReference<Transform> exampleValue;// 在这个脚本中 需要理解为什么我们已经有了clip还需要 playable// 因为clip相当于戏的剧本而我们给观众是戏不是剧本,这个时候据需要Create 创建一个playable 作为戏来来演出。// graph 一个可播放图用于管理播放的行为。owner 表示拥有这个可播放对象的游戏对象。public override Playable CreatePlayable(PlayableGraph graph, GameObject owner){// 我们需要一个playable 所以用工厂模式创建一个,graph代表我们是给谁创建,template 是我们的data实例表示把这个template创建为playable,但是我们知道这个Template是一个模板里面是没有数据的所以有了下一步var playable = ScriptPlayable<DataBehaviour>.Create(graph, template);// 我们需要从这个playable上面把clone的data取出来DataBehaviour clone = playable.GetBehaviour();// 因为mono behaviour 可以引用 mono behaviour 也可以引用 assets 但是反过来  assets 不能随意引用monobehaviour 但是可以通过反过来引用那个引用了assets的monobehaviour来引用其他的monobehaviour。// 之后在进行赋值clone.exampleValue = exampleValue.Resolve(graph.GetResolover());return playable;}
}

Track(轨道)

用于组织动画和音频剪辑的容器
继承 TrackAsset 并加上特性。

[TrackColor(0/255f,255/255f,255/255f)] // 轨道的颜色
[TrackBindingType(typeof(GameObject))] // 要绑定的物品的类型是什么,需要给什么物体播放Timeline,可以是一个物体,也可以是一个脚本,或者是一个Aanimator等等
[TrackClipType(typeof(TextDataClip))] // 可以放到这个轨道上的clip是什么类型
using UnityEngine.Timeline;[TrackColor(0/255f,255/255f,255/255f)]
[TrackBindingType(typeof(Transform))]
[TrackClipType(typeof(DataClip))]
public class TextTrack : TrackAsset
{public override Playable CreateTrackMixer(PlayableGraph graph,GameObject go,int inputCount){// var mixerPlayable = ScriptPlayable<CustomMixer>.Create(graph);//这个是被CustomMixer驱动的Playable,mixerPlayable.GetBehaviour() as CustomMixer;就可以获得CustomMixer了//mixerPlayable.SetInputCount(inputCount);//return mixerPlayable;//返回mixerreturn ScriptPlayable<CustomMixer>.Create(graph,inputCount);}
}

Mixer(混合)

Mixer会铺满整条轨道,他并不会知道现在在播放哪一个clip,他会询问在他上面的每一个clip的权重,当播放到某一个clip的时候这个clip的权重就会变成1但是当两个混合的时候 权重的大小就会变成一条斜线

public class CustomMixer:PlayableBehaviour
{public override void OnPlayableCreate(Playable playable){...}public override void OnPlayableDestroy(Playable playable){...}public override void PrepareFrame(Playable playable, FrameData info){...}// 相当于update 会一直更新的public override void ProcessFrame(Playable playable, FrameData info, object playerData){//得到绑定的东西(就是你需要修改的东西)Transform transform =  playerData as Transform;for(int i = 0 ; i < playable.GetInputCount(); i++)//获取轨道上所有的片段{float weight  = playable.GetInputWeight(i);//获取片段在当前帧的片段的权重var clipPlayable = (ScriptPlayable<CustomPlayableBehaviour>)playable.GetInput(i);// 获取当前的 CustomPlayableBehaviour behaviour = clipPlayable.GetBehaviour();//获取CustomPlayableBehaviour...//接下来你可以根据Clip的权重写相应的逻辑(如果你没有在ClipCaps里设置blend的话,应该只有一个片段的权重是1,其他为0)}}//上面4个虚方法是最常用的,OnBehaviourPause不建议使用,不太好掌控(会因为各种原因暂停)。直接根据time值得变化判断是否暂停也挺好得
}

这里自定义TimeiLine就完成了,后面会做一个例子的。

http://www.hrbkazy.com/news/1090.html

相关文章:

  • 练手网站开发交换链接的作用
  • 做网站 参考文献论坛seo设置
  • 长沙制作网站设计多少钱google chrome浏览器
  • 网站使用授权书厦门seo优
  • 军工企业专业网站建设方案广州专门做seo的公司
  • 可做百科资料参考的网站夫唯seo怎么样
  • 导航网站建设网址缩短在线生成器
  • 网站开发技术发展史站长工具网站测速
  • WordPress全站广告新闻头条今日要闻
  • 网站买空间的价格免费开网店免费供货
  • wordpress 图片模版seo草根博客
  • 优秀网站设计推荐爱站网站排行榜
  • 制作微信公众号网站开发河北关键词seo排名
  • 律师微网站建设专门用来查找网址的网站
  • 个人做网站公司山东泰安网络推广
  • webshell wordpressaso优化平台
  • 网站建设通知书搜索引擎优化包括哪些内容
  • 建设一个网站的支出seo英文
  • 扬州建站公司百度关键词屏蔽
  • 东凤网站广告推广系统
  • 网站建设所操作是什么微信朋友圈产品推广语
  • c#网站开发日期控件世界杯数据分析
  • 自己做的网站怎么加搜索功能关键词优化分析工具
  • 如何防止网站挂黑链中国科技新闻网
  • 深圳石岩建网站58同城发布免费广告
  • 四川建设部网站官网网站建设方案书 模板
  • 微信制作微网站开发域名注册需要哪些条件
  • 怎样在工商局网站上做网登网络推广一般都干啥
  • 东莞seo建站优化方法业务推广方式有哪些
  • 网站方案建设书怎么写海洋网络推广效果