Exemplo n.º 1
0
    private static IEnumerator PlayAnimationCoroutine(Action <float> animationAction, float duration,
                                                      AnimationF.GeneralEaseFunc easeFunc)
    {
        float startTime = Time.time;

        for (var t = 0f; t < 1f; t = (Time.time - startTime) / duration)
        {
            animationAction.Invoke(easeFunc(t));
            yield return(null);
        }

        animationAction.Invoke(easeFunc(1f));
        yield return(null);
    }
Exemplo n.º 2
0
 /// <summary>
 /// Plays animation in a coroutine giving animationAction params from 0 to 1 with specific ease func
 /// </summary>
 /// <param name="monoBehaviour">method will be invoked on this</param>
 /// <param name="animationAction">action to be done each frame</param>
 /// <param name="duration">duration of action</param>
 /// <param name="easeCurve">ease function</param>
 public static Coroutine PlayAnimation(this MonoBehaviour monoBehaviour, Action <float> animationAction, float duration,
                                       AnimationF.GeneralEaseFunc easeCurve)
 {
     return(monoBehaviour.StartCoroutine(PlayAnimationCoroutine(animationAction, duration, easeCurve)));
 }