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> 公开引用_Light; //公开引用对象。非struct类型好像都要加
public ExposedReference<Collider> 公开引用_Light2; //公开引用对象。非struct类型好像都要加
public Color 颜色;
public float 强度 = 1;
public override Playable CreatePlayable(PlayableGraph graph/*引擎界面会传递数据进来,unity重复了*/, GameObject owner)
{
//创建一个ScriptPlayable结构(同时也会创建1个 Playable逻辑行为脚本 对象)
ScriptPlayable<Playable逻辑行为脚本> 播放脚本 = ScriptPlayable<Playable逻辑行为脚本>.Create(graph);
Playable逻辑行为脚本 逻辑脚本 = 播放脚本.GetBehaviour();//获取创建的 Playable逻辑行为脚本 对象
//赋值
逻辑脚本.灯光 = 公开引用_Light.Resolve/*根据类型,名称解析获取对应的变量数据*/(graph.GetResolver()/*获取引擎界面传递的数据表*/);
逻辑脚本.颜色 = 颜色;
逻辑脚本.强度 = 强度;
return 播放脚本;//包含创建的 Playable逻辑行为脚本 对象
}
}