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