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

53 lines
1.8 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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;
}
}
}