void _UpdateInternalValues()
{
// _animatorEnabledImmediately
if( settings.animatorEnabled == AutomaticBool.Auto ) {
if( !_isAnimatorCheckedAtLeastOnce ) {
_isAnimatorCheckedAtLeastOnce = true;
internalValues.animatorEnabled = false;
if( rootTransform != null ) {
var animator = rootTransform.GetComponent<Animator>();
if( animator != null && animator.enabled ) {
var runtimeAnimatorController = animator.runtimeAnimatorController;
internalValues.animatorEnabled = (runtimeAnimatorController != null);
}
if( animator == null ) { // Legacy support.
var animation = rootTransform.GetComponent<Animation>();
if( animation != null && animation.enabled && animation.GetClipCount() > 0 ) {
internalValues.animatorEnabled = true;
}
}
}
}
} else {
internalValues.animatorEnabled = (settings.animatorEnabled != AutomaticBool.Disable);
_isAnimatorCheckedAtLeastOnce = false;
}
if( settings.resetTransforms == AutomaticBool.Auto ) {
internalValues.resetTransforms = !(internalValues.animatorEnabled);
} else {
internalValues.resetTransforms = (settings.resetTransforms != AutomaticBool.Disable);
}
internalValues.continuousSolverEnabled = !internalValues.animatorEnabled && !internalValues.resetTransforms;
internalValues.bodyIK.Update( settings.bodyIK );
internalValues.limbIK.Update( settings.limbIK );
internalValues.headIK.Update( settings.headIK );
}