一.Playable Track入门

下面是一个小例子能够实现自定义Playable Track 中控制灯光的颜色:
实现上面的效果先添加脚本:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Playables;
public class LightControlBehaviour : PlayableBehaviour
{
public Light light;
public Color color = Color.white;
public float intensity = 1;
/// <summary>
/// timeLine 每次更新都会执行此方法
/// </summary>
/// <param name="playable"></param>
/// <param name="info"></param>
/// <param name="playerData"></param>
public override void ProcessFrame(Playable playable, FrameData info, object playerData)
{
if (light != null)
{
light.color = color;
light.intensity = intensity;
}
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Playables;
public class LightControlAsset : PlayableAsset
{
// 在clip中的light对象
public ExposedReference<Light> light;
public Color color = Color.white;
public float intensity = 1;
public override Playable CreatePlayable(PlayableGraph graph, GameObject owner)
{
// 把逻辑和资源联系起来
var playable = ScriptPlayable<LightControlBehaviour>.Create(graph);
var lightControlBehavliur = playable.GetBehaviour();
// 获取到light的对象
lightControlBehavliur.light = light.Resolve(graph.GetResolver());
lightControlBehavliur.color = color;
lightControlBehavliur.intensity = intensity;
return playable;
}
}

二 timeline自定义轨道
(由于PlayableTrack不能复用,不能更换绑定的数据源,所以PlayableTrack并不实用,自定义轨道更实用)


using System.Collections;
using System.Collections.Generic

本文详细介绍了Unity中Playable系统的使用,包括如何自定义PlayableTrack控制灯光颜色,创建简单动画及混合动画,以及运行时动态修改PlayableGraph。通过具体代码实例,深入理解Playable的工作原理。

9269

被折叠的 条评论
为什么被折叠?



