UnityEditor.PreviewBlendTree.UpdateAvatarState C# (CSharp) Method

UpdateAvatarState() private method

private UpdateAvatarState ( ) : void
return void
        private void UpdateAvatarState()
        {
            if (Event.current.type == EventType.Repaint)
            {
                if ((this.m_AvatarPreview.PreviewObject == null) || this.m_ControllerIsDirty)
                {
                    this.m_AvatarPreview.ResetPreviewInstance();
                    if (this.m_AvatarPreview.PreviewObject != null)
                    {
                        this.ResetStateMachine();
                    }
                }
                if (this.m_AvatarPreview.Animator != null)
                {
                    if (this.m_PrevIKOnFeet != this.m_AvatarPreview.IKOnFeet)
                    {
                        this.m_PrevIKOnFeet = this.m_AvatarPreview.IKOnFeet;
                        Vector3 rootPosition = this.m_AvatarPreview.Animator.rootPosition;
                        Quaternion rootRotation = this.m_AvatarPreview.Animator.rootRotation;
                        this.ResetStateMachine();
                        this.m_AvatarPreview.Animator.Update(this.m_AvatarPreview.timeControl.currentTime);
                        this.m_AvatarPreview.Animator.Update(0f);
                        this.m_AvatarPreview.Animator.rootPosition = rootPosition;
                        this.m_AvatarPreview.Animator.rootRotation = rootRotation;
                    }
                    if (this.m_AvatarPreview.Animator != null)
                    {
                        for (int i = 0; i < this.m_BlendTree.recursiveBlendParameterCount; i++)
                        {
                            string recursiveBlendParameter = this.m_BlendTree.GetRecursiveBlendParameter(i);
                            float num2 = BlendTreeInspector.GetParameterValue(this.m_AvatarPreview.Animator, this.m_BlendTree, recursiveBlendParameter);
                            this.m_AvatarPreview.Animator.SetFloat(recursiveBlendParameter, num2);
                        }
                    }
                    this.m_AvatarPreview.timeControl.loop = true;
                    float length = 1f;
                    float normalizedTime = 0f;
                    if (this.m_AvatarPreview.Animator.layerCount > 0)
                    {
                        AnimatorStateInfo currentAnimatorStateInfo = this.m_AvatarPreview.Animator.GetCurrentAnimatorStateInfo(0);
                        length = currentAnimatorStateInfo.length;
                        normalizedTime = currentAnimatorStateInfo.normalizedTime;
                    }
                    this.m_AvatarPreview.timeControl.startTime = 0f;
                    this.m_AvatarPreview.timeControl.stopTime = length;
                    this.m_AvatarPreview.timeControl.Update();
                    float deltaTime = this.m_AvatarPreview.timeControl.deltaTime;
                    if (!this.m_BlendTree.isLooping)
                    {
                        if (normalizedTime >= 1f)
                        {
                            deltaTime -= length;
                        }
                        else if (normalizedTime < 0f)
                        {
                            deltaTime += length;
                        }
                    }
                    this.m_AvatarPreview.Animator.Update(deltaTime);
                }
            }
        }