using UnityEngine;
namespace SLSUtilities.Feedback
{
///
/// 后处理震动实例的运行时状态。
/// 由 Shaker 维护,支持多个实例的叠加混合。
///
public class ShakeInstanceBase
{
public FeedbackTimeSettings timeSettings;
public IFeedbackTimeProvider timeProvider;
public float timer;
public float duration;
public ShakeInstanceBase(FeedbackTimeSettings timeSettings, IFeedbackTimeProvider timeProvider, float duration)
{
this.timeSettings = timeSettings;
this.timeProvider = timeProvider;
this.duration = duration;
timer = 0f;
}
public void Tick()
{
timer += timeProvider.GetDeltaTime(timeSettings);
}
///
/// 当前震动是否已结束。
///
public bool IsFinished => timer >= duration;
}
}