public static async UniTask DeltaCurveInterpolate(
     this ICurveProvider curve,
     float duration,
     System.Action <float> callback)
 {
     await DeltaCurveInterpolate(
         curve,
         0f,
         1f,
         duration,
         callback);
 }
Exemplo n.º 2
0
        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;
            }
        }