private void DoAnimation() { if (evaluatorHandler == null || evaluatorHandler.Invoke()) { OnAnimationCompleted(); } else { actionHandler.Invoke(); counter++; timer.Start(); } }
/// <summary> /// The method provides a simple mechanism for code based animations /// </summary> /// <param name="duration">Animation's duration</param> /// <param name="action">An action should be executed</param> /// <returns>A reference to enumerator</returns> public static IEnumerator Animate(float duration, AnimationAction action, UnityAction postAction = null) { if (action == null) { yield break; } float dt = 0.0f; for (float time = 0.0f; Mathf.Abs(time - duration) > (dt = Time.deltaTime); time += dt) { action?.Invoke(time); yield return(null); } postAction?.Invoke(); yield return(null); }
public void AnimationStart() { animationStartAction.Invoke(); }
public void AnimationEnd() { animationEndAction.Invoke(); }