NLDClient-yudde/ProjectNLD/Assets/Code/Scripts/GameWrapper/Timeline/CommonAction/CommonActionClip.cs

53 lines
1.8 KiB
C#
Raw Normal View History

2026-01-16 17:07:12 +08:00
using UnityEngine;
using UnityEngine.Playables;
using UnityEngine.Timeline;
namespace GameWrapper.Timeline.CommonAction
{
/// <summary>
/// 通用动作Clip独立版本
/// </summary>
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<CommonActionBehaviour>.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;
}
}
}