三大继承类
(1)PlayableTrack 自定义轨道
(2)PlayableBehavior Playable行为控制
(3)PlayableAsset Playable数据来源
首先创建一个自定义逻辑类:
using UnityEngine; public class SayHello : MonoBehaviour { public string TextContent; // Update is called once per frame void 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 asset public 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。

控制台打印如下:


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/14947.html