public virtual void UpdateAnimatorState(AnimatorInterface _animator_data) { if (AnimatorComponent == null || AnimatorComponent.runtimeAnimatorController == null || !AnimatorComponent.isInitialized || AnimatorComponent.IsInTransition(0)) { return; } AnimatorStateInfo _state = AnimatorComponent.GetCurrentAnimatorStateInfo(0); if (_state.IsName(_animator_data.StateName)) { return; } AnimatorComponent.speed = _animator_data.Speed; //Debug.Log( _animator_data.StateName + " - " + Time.frameCount ); if (_animator_data.TransitionDuration == 0) { AnimatorComponent.Play(_animator_data.StateName); } else { AnimatorComponent.CrossFade(_animator_data.StateName, _animator_data.TransitionDuration); } //m_AnimatorAutoSpeed = _rule.Animation.Animator.AutoSpeed; /*if( _rule.Animation.Animator.AutoSpeed ) * m_Animator.speed = Mathf.Clamp( m_BehaviourData.MoveVelocity. controller.velocity.magnitude, 0.0, runMaxAnimationSpeed); * else*/ }
public virtual void UpdateAnimatorParameter(AnimatorInterface _animator_data, bool _stop) { if (AnimatorComponent == null || AnimatorComponent.runtimeAnimatorController == null || !AnimatorComponent.isInitialized) { return; } foreach (AnimatorParameterObject _parameter in _animator_data.Parameters) { if (_parameter.Enabled) { if (_parameter.Type == AnimatorControllerParameterType.Bool && ((!_stop && !_parameter.UseEnd) || (_stop && _parameter.UseEnd))) { if (_parameter.UseDynamicValue) { AnimatorComponent.SetBool(_parameter.HashId, (OwnerComponent != null ? OwnerComponent.GetDynamicBooleanValue(_parameter.BooleanValueType) :_parameter.BooleanValue)); } else { AnimatorComponent.SetBool(_parameter.HashId, _parameter.BooleanValue); } } else if (_parameter.Type == AnimatorControllerParameterType.Float && ((!_stop && !_parameter.UseEnd) || (_stop && _parameter.UseEnd))) { if (_parameter.UseDynamicValue) { AnimatorComponent.SetFloat(_parameter.HashId, (OwnerComponent != null ? OwnerComponent.GetDynamicFloatValue(_parameter.FloatValueType):_parameter.FloatValue)); } else { AnimatorComponent.SetFloat(_parameter.HashId, _parameter.FloatValue); } } else if (_parameter.Type == AnimatorControllerParameterType.Int && ((!_stop && !_parameter.UseEnd) || (_stop && _parameter.UseEnd))) { if (_parameter.UseDynamicValue) { AnimatorComponent.SetInteger(_parameter.HashId, (OwnerComponent != null ? OwnerComponent.GetDynamicIntegerValue(_parameter.IntegerValueType):_parameter.IntegerValue)); } else { AnimatorComponent.SetInteger(_parameter.HashId, _parameter.IntegerValue); } } else if (_parameter.Type == AnimatorControllerParameterType.Trigger) { if ((_stop && _parameter.End()) || (!_stop && (_parameter.Start() || _parameter.Update()))) { AnimatorComponent.SetTrigger(_parameter.HashId); } } } } }
public void Copy(AnimatorInterface _data) { StateName = _data.StateName; Name = _data.Name; Index = _data.Index; Length = _data.Length; AutoSpeed = _data.AutoSpeed; Speed = _data.Speed; TransitionDuration = _data.TransitionDuration; AutoTransitionDuration = _data.AutoTransitionDuration; Type = _data.Type; ApplyRootMotion = _data.ApplyRootMotion; CopyParameters(_data.Parameters); }