using System; using Sirenix.OdinInspector; using UnityEngine; namespace SLSUtilities.Feedback { /// /// 轨道上的一个时间片段,包含一个 FeedbackAction 及其时间参数。 /// 曲线控制完全下放到具体 Action 中,Clip 只负责时间调度。 /// [Serializable] public class FeedbackClip { /// /// 片段开始时间(秒)。 /// [MinValue(0f)] public float startTime; /// /// 片段持续时间(秒)。 /// [MinValue(0.01f)] public float duration = 0.1f; /// /// 片段结束时间(秒)。 /// public float EndTime => startTime + duration; /// /// 是否覆盖 FeedbackData 的时间设置。 /// [Title("Time Override")] public bool overrideTimeSettings; /// /// 覆盖用的时间设置,仅在 overrideTimeSettings 为 true 时生效。 /// [ShowIf("overrideTimeSettings")] public FeedbackTimeSettings timeSettings = new FeedbackTimeSettings(); /// /// 具体反馈动作,Odin 自动显示多态类型选择器。 /// [Title("Action"), SerializeReference] public FeedbackActionBase action; } }