AssemblyCSharp.AnimatorExtension.TweenRoutine C# (CSharp) Метод

TweenRoutine() публичный статический Метод

public static TweenRoutine ( this animator, Vector3 position, Quaternion rotation, int state, Action onComplete = null ) : IEnumerator
animator this
position Vector3
rotation UnityEngine.Quaternion
state int
onComplete Action
Результат IEnumerator
        public static IEnumerator TweenRoutine(this Animator animator, Vector3? position, Quaternion? rotation,
            int state, Action onComplete = null)
        {
            var transform = animator.transform;

            var startPosition = transform.position;
            var startRotation = transform.rotation;

            while (!animator.IsInTransition(0) || animator.GetNextAnimatorStateInfo(0).nameHash != state)
            {
            yield return null;
            }

            while (animator.IsInTransition(0) && animator.GetAnimatorTransitionInfo(0).normalizedTime < 1)
            {
            var percentage = Mathf.Clamp(animator.GetAnimatorTransitionInfo(0).normalizedTime, 0, 1);

            if (position != null)
            {
                transform.position = Vector3.Lerp(startPosition, (Vector3)position, percentage);
            }

            if (rotation != null)
            {
                transform.rotation = Quaternion.Lerp(startRotation, (Quaternion)rotation, percentage);
            }

            yield return null;
            }

            if (position != null)
            {
            transform.position = (Vector3)position;
            }

            if (rotation != null)
            {
            transform.rotation = (Quaternion)rotation;
            }

            if (onComplete != null)
            {
            onComplete();
            }
        }

Same methods

AnimatorExtension::TweenRoutine ( this animator, Vector3 position, Quaternion rotation, float startTimeNormalized, float endTimeNormalized, Action onComplete = null ) : IEnumerator
AnimatorExtension