Files
Cielonos/Assets/Scripts/SLSUtilities/Feedback/Base/FeedbackClip.cs

54 lines
1.5 KiB
C#
Raw Normal View History

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