zoukankan      html  css  js  c++  java
  • 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) {} }
  • 相关阅读:
    JavaWeb学习笔记——开发动态WEB资源(七)bookapp
    JavaWeb学习笔记——开发动态WEB资源(六)ServletConfig和ServletContext
    Eclipse学习笔记——快捷键
    JavaWeb学习笔记——开发动态WEB资源(五)servlet身份验证
    JavaWeb学习笔记——开发动态WEB资源(四)打印当前使用的是get方法
    JavaWeb学习笔记——开发动态WEB资源(三)显示当前时间
    JavaWeb学习笔记——开发动态WEB资源(二)HelloWord
    JavaWeb学习笔记——开发动态WEB资源(一)Java程序向浏览器输出数据
    JavaWeb学习笔记——Tomcat相关
    JavaWeb学习笔记——访问静态HTML网页
  • 原文地址:https://www.cnblogs.com/Jean90/p/10496564.html
Copyright © 2011-2022 走看看