using UnityEngine;
using UnityEngine.Playables;
using UnityEngine.Timeline;
namespace GameWrapper.Timeline.CommonAction
{
///
/// 通用动作Clip(独立版本)
///
public class CommonActionClip : PlayableAsset, ITimelineClipAsset
{
[Tooltip("动作类型")]
public ECommonActionType actionType = ECommonActionType.ActiveSet;
[Tooltip("参数1 - 不同动作类型含义不同,详见枚举注释")]
public int actionParam1 = 1;
[Tooltip("参数2 - 用于某些需要额外参数的动作类型")]
public int actionParam2 = 0;
[Tooltip("字符串参数 - 用于需要名称的动作类型(如动画名称)")]
public string stringParam = "";
[Tooltip("颜色参数 - 用于MaterialChange等需要颜色的动作")]
public Color colorParam = Color.white;
[Tooltip("浮点参数 - 用于需要精确数值的动作(如透明度、强度等)")]
[Range(0f, 1f)]
public float floatParam = 1f;
public ClipCaps clipCaps
{
get { return ClipCaps.None; }
}
public override Playable CreatePlayable(PlayableGraph graph, GameObject owner)
{
var playable = ScriptPlayable.Create(graph);
var behaviour = playable.GetBehaviour();
// 传递Clip数据给Behaviour
behaviour.actionType = actionType;
behaviour.actionParam1 = actionParam1;
behaviour.actionParam2 = actionParam2;
behaviour.stringParam = stringParam;
behaviour.colorParam = colorParam;
behaviour.floatParam = floatParam;
return playable;
}
}
}