Esempio n. 1
0
 protected override Vector3 Evaluate(Vector3 a, Vector3 b, float t, EaseDelegate easeFunction)
 {
     return(new Vector3(
                easeFunction(a.x, b.x, t),
                easeFunction(a.y, b.y, t),
                easeFunction(a.z, b.z, t)));
 }
Esempio n. 2
0
        public Vector3 Evaluate(
            Vector3 initialValue,
            Vector3 finalValue,
            float time,
            EaseDelegate easeFunction
            )
        {
            if (easeFunction == null)
            {
                throw new ArgumentNullException($"Tried to Evaluate with a " +
                                                $"null {nameof(EaseDelegate)} on {nameof(Vector3Interpolator)}");
            }

            if (rotationMode == RotationMode.Fast)
            {
                Vector3 deltaAngle = AngleUtils.DeltaAngle(initialValue, finalValue);

                finalValue = initialValue + deltaAngle;
            }

            return(new Vector3(
                       easeFunction(initialValue.x, finalValue.x, time),
                       easeFunction(initialValue.y, finalValue.y, time),
                       easeFunction(initialValue.z, finalValue.z, time)
                       ));
        }
Esempio n. 3
0
 protected override Color Evaluate(Color a, Color b, float t, EaseDelegate easeFunction)
 {
     return(new Color(
                easeFunction(a.r, b.r, t),
                easeFunction(a.g, b.g, t),
                easeFunction(a.b, b.b, t),
                easeFunction(a.a, b.a, t)));
 }
Esempio n. 4
0
        public override void OnEaseDelegateChanges(EaseDelegate easeFunction)
        {
            foreach (Tween tween in tweens)
            {
                tween.OnEaseDelegateChanges(easeFunction);
            }

            EaseFunction = easeFunction;
        }
Esempio n. 5
0
 public void TweenPositionTo(Vector2 targetPos, float duration, EaseDelegate ease, bool local)
 {
     if (positionRoutine != null)
     {
         StopCoroutine(positionRoutine);
     }
     positionRoutine = TweeningPositionTo(targetPos, duration, ease, local);
     StartCoroutine(positionRoutine);
 }
Esempio n. 6
0
 public void TweenEulerTo(Vector3 targetEuler, float duration, EaseDelegate ease, bool local)
 {
     if (rotationRoutine != null)
     {
         StopCoroutine(rotationRoutine);
     }
     rotationRoutine = TweeningEulerTo(targetEuler, duration, ease, local);
     StartCoroutine(rotationRoutine);
 }
        public override void OnEaseDelegateChanges(EaseDelegate easeFunction)
        {
            foreach (ITweener tweener in tweeners)
            {
                tweener.SetEase(easeFunction);
            }

            EaseFunction = easeFunction;
        }
Esempio n. 8
0
 public void TweenScaleTo(Vector3 targetScale, float duration, EaseDelegate ease)
 {
     if (scaleRoutine != null)
     {
         StopCoroutine(scaleRoutine);
     }
     scaleRoutine = TweeningScaleTo(targetScale, duration, ease);
     StartCoroutine(scaleRoutine);
 }
Esempio n. 9
0
        public FTweener SetEase(EaseDelegate ease)
        {
            if (setup)
            {
                Debug.LogWarning("Tried to modify running tween");
            }

            this.ease  = Ease.__Custom;
            customEase = ease;
            return(this);
        }
Esempio n. 10
0
        internal static EaseDelegate GetEaseDelegate(AnimationCurve animationCurve)
        {
            EaseDelegate result = (float a, float b, float t) =>
            {
                float newT = animationCurve.Evaluate(t);

                return(a + ((b - a) * newT));
            };

            return(result);
        }
    private IEnumerator MoveToPosition(Vector3 targetPos, float duration, EaseDelegate getCurrentPosition)
    {
        float   elapsedTime = 0;
        Vector3 startingPos = transform.localPosition;

        while (elapsedTime < duration)
        {
            transform.localPosition = getCurrentPosition(startingPos, targetPos, (elapsedTime / duration));
            elapsedTime            += Time.deltaTime;
            yield return(null);
        }
        transform.localPosition = targetPos;
    }
Esempio n. 12
0
        public int Evaluate(
            int initialValue,
            int finalValue,
            float time,
            EaseDelegate easeFunction
            )
        {
            if (easeFunction == null)
            {
                throw new ArgumentNullException($"Tried to Evaluate with a " +
                                                $"null {nameof(EaseDelegate)} on {nameof(IntInterpolator)}");
            }

            return((int)easeFunction(initialValue, finalValue, time));
        }
Esempio n. 13
0
    IEnumerator TweeningScaleTo(Vector3 targetScale, float duration, EaseDelegate ease)
    {
        Vector2 startScale = transform.localScale;
        float   counter    = 0;

        while (counter < duration)
        {
            counter += Time.deltaTime;
            counter  = Mathf.Clamp(counter, 0, duration);
            float l = ease(counter / duration);
            transform.localScale = Vector3.Lerp(startScale, targetScale, l);

            yield return(null);
        }
    }
Esempio n. 14
0
        public Quaternion Evaluate(
            Quaternion initialValue,
            Quaternion finalValue,
            float time,
            EaseDelegate easeFunction
            )
        {
            if (easeFunction == null)
            {
                throw new ArgumentNullException($"Tried to Evaluate with a " +
                                                $"null {nameof(EaseDelegate)} on {nameof(ColorInterpolator)}");
            }

            float curveTime = easeFunction(0f, 1f, time);

            return(Quaternion.Slerp(initialValue, finalValue, curveTime));
        }
        public Vector2 Evaluate(
            Vector2 initialValue,
            Vector2 finalValue,
            float time,
            EaseDelegate easeFunction
            )
        {
            if (easeFunction == null)
            {
                throw new ArgumentNullException($"Tried to Evaluate with a " +
                                                $"null {nameof(EaseDelegate)} on {nameof(Vector2Interpolator)}");
            }

            return(new Vector2(
                       easeFunction(initialValue.x, finalValue.x, time),
                       easeFunction(initialValue.y, finalValue.y, time)
                       ));
        }
Esempio n. 16
0
        public Color Evaluate(
            Color initialValue,
            Color finalValue,
            float time,
            EaseDelegate easeFunction
            )
        {
            if (easeFunction == null)
            {
                throw new ArgumentNullException($"Tried to Evaluate with a " +
                                                $"null {nameof(EaseDelegate)} on {nameof(ColorInterpolator)}");
            }

            return(new Color(
                       easeFunction(initialValue.r, finalValue.r, time),
                       easeFunction(initialValue.g, finalValue.g, time),
                       easeFunction(initialValue.b, finalValue.b, time),
                       easeFunction(initialValue.a, finalValue.a, time)
                       ));
        }
Esempio n. 17
0
        public Rect Evaluate(
            Rect initialValue,
            Rect finalValue,
            float time,
            EaseDelegate easeFunction
            )
        {
            if (easeFunction == null)
            {
                throw new ArgumentNullException($"Tried to Evaluate with a " +
                                                $"null {nameof(EaseDelegate)} on {nameof(Rect)}");
            }

            return(new Rect(
                       easeFunction(initialValue.x, finalValue.x, time),
                       easeFunction(initialValue.y, finalValue.y, time),
                       easeFunction(initialValue.width, finalValue.width, time),
                       easeFunction(initialValue.height, finalValue.height, time)
                       ));
        }
Esempio n. 18
0
    IEnumerator TweeningEulerTo(Vector3 targetEuler, float duration, EaseDelegate ease, bool local)
    {
        Vector2 startEuler = local ? transform.localEulerAngles : transform.eulerAngles;
        float   counter    = 0;

        while (counter < duration)
        {
            counter += Time.deltaTime;
            counter  = Mathf.Clamp(counter, 0, duration);
            float l = ease(counter / duration);
            if (local)
            {
                transform.localEulerAngles = Vector3.Lerp(startEuler, targetEuler, l);
            }
            else
            {
                transform.eulerAngles = Vector3.Lerp(startEuler, targetEuler, l);
            }

            yield return(null);
        }
    }
Esempio n. 19
0
    IEnumerator TweeningPositionTo(Vector2 targetPos, float duration, EaseDelegate ease, bool local)
    {
        //Debug.Log("Called");
        Vector2 startPos = local?transform.localPosition:transform.position;
        float   counter  = 0;

        while (counter < duration)
        {
            counter += Time.deltaTime;
            counter  = Mathf.Clamp(counter, 0, duration); //on clamp histoire de jamais avoir de valeur > duration qui pourrait faire foirer le Ease en dessous.
            float l = ease(counter / duration);           //on applique un Easing au counter pour avoir une valeur entre 0 et 1 qui suit une "courbe" spécifique.
            //puis on lerp entre les deux position, en fonction de si c'est en local ou pas
            if (local)
            {
                transform.localPosition = Vector2.Lerp(startPos, targetPos, l);
            }
            else
            {
                transform.position = Vector2.Lerp(startPos, targetPos, l);
            }
            yield return(null); //pour que la coroutine fasse cette opération à chaque frame, plutôt que tout d'un coup
        }
    }
Esempio n. 20
0
 protected override float Evaluate(float a, float b, float t, EaseDelegate easeFunction)
 {
     return(easeFunction(a, b, t));
 }
Esempio n. 21
0
 public void SetEase(EaseDelegate easeFunction)
 {
     this.easeFunction = easeFunction;
 }
Esempio n. 22
0
        /// <summary>
        /// Easing Functions enumeration
        /// </summary>

        /// <summary>
        /// Interpolate using the specified function.
        /// </summary>
        static public float Evaluate(float p, Ease function, EaseDelegate del)
        {
            switch (function)
            {
            default:
            case Ease.QuadraticOut: return(QuadraticEaseOut(p));

            case Ease.QuadraticIn: return(QuadraticEaseIn(p));

            case Ease.QuadraticInOut: return(QuadraticEaseInOut(p));

            case Ease.CubicIn: return(CubicEaseIn(p));

            case Ease.CubicOut: return(CubicEaseOut(p));

            case Ease.CubicInOut: return(CubicEaseInOut(p));

            case Ease.QuarticIn: return(QuarticEaseIn(p));

            case Ease.QuarticOut: return(QuarticEaseOut(p));

            case Ease.QuarticInOut: return(QuarticEaseInOut(p));

            case Ease.QuinticIn: return(QuinticEaseIn(p));

            case Ease.QuinticOut: return(QuinticEaseOut(p));

            case Ease.QuinticInOut: return(QuinticEaseInOut(p));

            case Ease.SineIn: return(SineEaseIn(p));

            case Ease.SineOut: return(SineEaseOut(p));

            case Ease.SineInOut: return(SineEaseInOut(p));

            case Ease.CircularIn: return(CircularEaseIn(p));

            case Ease.CircularOut: return(CircularEaseOut(p));

            case Ease.CircularInOut: return(CircularEaseInOut(p));

            case Ease.ExponentialIn: return(ExponentialEaseIn(p));

            case Ease.ExponentialOut: return(ExponentialEaseOut(p));

            case Ease.ExponentialInOut: return(ExponentialEaseInOut(p));

            case Ease.ElasticIn: return(ElasticEaseIn(p));

            case Ease.ElasticOut: return(ElasticEaseOut(p));

            case Ease.ElasticInOut: return(ElasticEaseInOut(p));

            case Ease.BackIn: return(BackEaseIn(p));

            case Ease.BackOut: return(BackEaseOut(p));

            case Ease.BackInOut: return(BackEaseInOut(p));

            case Ease.BounceIn: return(BounceEaseIn(p));

            case Ease.BounceOut: return(BounceEaseOut(p));

            case Ease.BounceInOut: return(BounceEaseInOut(p));

            case Ease.Linear: return(Linear(p));

            case Ease.__Custom: return(del(p));
            }
        }
Esempio n. 23
0
 public override void OnEaseDelegateChanges(EaseDelegate easeFunction)
 {
 }
Esempio n. 24
0
        public void SetEase(EaseDelegate easeFunction)
        {
            EaseFunction = easeFunction;

            OnEaseDelegateChanges(EaseFunction);
        }
Esempio n. 25
0
 public abstract void OnEaseDelegateChanges(EaseDelegate easeFunction);
Esempio n. 26
0
 protected abstract T Evaluate(T a, T b, float t, EaseDelegate easeFunction);
Esempio n. 27
0
 public void SetEase(Ease ease)
 {
     easeFunction = TweenerCore.GetEaseFunction(ease);
 }
Esempio n. 28
0
 public Interpolator(Ease ease)
 {
     easeFunction = TweenerCore.GetEaseFunction(ease);
 }