public static async UniTask DeltaCurveInterpolate( this ICurveProvider curve, float duration, System.Action <float> callback) { await DeltaCurveInterpolate( curve, 0f, 1f, duration, callback); }
public static async UniTask FadeIn( CanvasGroup group, ICurveProvider curve, float fadeTime, System.Action onEnd) { await curve.DeltaCurveInterpolate( fadeTime, (float value) => { group.alpha = value; }); onEnd?.Invoke(); }
public static async UniTask DeltaCurveInterpolate( this ICurveProvider curve, float start, float length, float duration, System.Action <float> callback) { var t = 0f; while (t < duration) { callback(start + curve.GetY(t / duration) * length); await UniTask.DelayFrame(1); t += Time.deltaTime; } }