Timeline

PlayableTrack

  • PlayableBehaviour用于存放逻辑
  • PlayableAsset用于存放数据
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Playables;

public class Playable逻辑行为脚本 : PlayableBehaviour
{
    public Light 灯光;
    public Color 颜色 = Color.white;
    public float 强度 = 1;

    public override void ProcessFrame(Playable playable, FrameData info, object playerData)//正在播放动画帧
    {
       if(灯光!=null)
        {
            灯光.color = 颜色;
            灯光.intensity = 强度;
        }
    }
}

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Playables;

public class Playable资源脚本 : PlayableAsset
{
    public ExposedReference 公开引用_Light;   //公开引用对象。非struct类型好像都要加
    public ExposedReference 公开引用_Light2;   //公开引用对象。非struct类型好像都要加
    public Color 颜色;
    public float 强度 = 1;

    public override Playable CreatePlayable(PlayableGraph graph/*引擎界面会传递数据进来,unity重复了*/, GameObject owner)
    {
        //创建一个ScriptPlayable结构(同时也会创建1个 Playable逻辑行为脚本 对象)
        ScriptPlayable 播放脚本 = ScriptPlayable.Create(graph);
        Playable逻辑行为脚本 逻辑脚本 = 播放脚本.GetBehaviour();//获取创建的 Playable逻辑行为脚本 对象

        //赋值
        逻辑脚本.灯光 = 公开引用_Light.Resolve/*根据类型,名称解析获取对应的变量数据*/(graph.GetResolver()/*获取引擎界面传递的数据表*/);
        逻辑脚本.颜色 = 颜色;
        逻辑脚本.强度 = 强度;
        return 播放脚本;//包含创建的 Playable逻辑行为脚本 对象 
    }
}

你可能感兴趣的:(Timeline)