Timeline

2020-05-08  本文已影响0人  JJJJJJJJJJC

PlayableTrack

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逻辑行为脚本 对象 
    }
}

上一篇 下一篇

猜你喜欢

热点阅读