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);
}
}
}