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