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