35 lines
963 B
C#
35 lines
963 B
C#
using UnityEngine;
|
|
|
|
namespace SLSUtilities.Feedback
|
|
{
|
|
/// <summary>
|
|
/// 后处理震动实例的运行时状态。
|
|
/// 由 Shaker 维护,支持多个实例的叠加混合。
|
|
/// </summary>
|
|
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);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 当前震动是否已结束。
|
|
/// </summary>
|
|
public bool IsFinished => timer >= duration;
|
|
}
|
|
}
|