diff --git a/Assets/MainAssets/Agents/Animator/LocomotionFinal.controller b/Assets/MainAssets/Agents/Animator/LocomotionFinal.controller index e41bf10b5e6058c5d4891adee8c26f5a2527bd3f..611ba036168f2ee2070c776c4f51f3b53c53b664 100644 --- a/Assets/MainAssets/Agents/Animator/LocomotionFinal.controller +++ b/Assets/MainAssets/Agents/Animator/LocomotionFinal.controller @@ -3147,10 +3147,10 @@ AnimatorStateMachine: m_Position: {x: -516, y: -504, z: 0} - serializedVersion: 1 m_State: {fileID: 1102964328578706210} - m_Position: {x: -516, y: 96, z: 0} + m_Position: {x: -510, y: 100, z: 0} - serializedVersion: 1 m_State: {fileID: 1102880699750407020} - m_Position: {x: -516, y: 336, z: 0} + m_Position: {x: -520, y: 330, z: 0} - serializedVersion: 1 m_State: {fileID: 1102743880108120760} m_Position: {x: -540, y: 0, z: 0} @@ -4445,6 +4445,9 @@ AnimatorStateTransition: - m_ConditionMode: 6 m_ConditionEvent: AnimationType m_EventTreshold: 2 + - m_ConditionMode: 4 + m_ConditionEvent: Speed + m_EventTreshold: 0.01 m_DstStateMachine: {fileID: 0} m_DstState: {fileID: 1102964328578706210} m_Solo: 0 @@ -4542,6 +4545,9 @@ AnimatorStateTransition: - m_ConditionMode: 6 m_ConditionEvent: AnimationType m_EventTreshold: 1 + - m_ConditionMode: 4 + m_ConditionEvent: Speed + m_EventTreshold: 0.01 m_DstStateMachine: {fileID: 0} m_DstState: {fileID: 1102880699750407020} m_Solo: 0 @@ -4817,6 +4823,9 @@ AnimatorStateTransition: - m_ConditionMode: 6 m_ConditionEvent: AnimationType m_EventTreshold: 3 + - m_ConditionMode: 4 + m_ConditionEvent: Speed + m_EventTreshold: 0.01 m_DstStateMachine: {fileID: 0} m_DstState: {fileID: 1102743880108120760} m_Solo: 0 diff --git a/Assets/MainAssets/Scripts/Agents/ControlAnimation/AnimationController.cs b/Assets/MainAssets/Scripts/Agents/ControlAnimation/AnimationController.cs index 115956c752c30cc6d4bc4573f8d237823de6d404..bfb13426cfa709423cf92ab1ad87027598c9e891 100644 --- a/Assets/MainAssets/Scripts/Agents/ControlAnimation/AnimationController.cs +++ b/Assets/MainAssets/Scripts/Agents/ControlAnimation/AnimationController.cs @@ -15,9 +15,11 @@ public class AnimationController : MonoBehaviour private uint agentID; private Vector3 _oldVelocity; private Quaternion _oldRotation; - private float _speed=0; + private string _oldState = "Idle"; + private float _timeIdle=0; + public string _defaultIdleAnimation = "Idle"; - public bool IsIdle { get { return _speed<0.00001; } } + public bool IsIdle { get { return _timeIdle > 1.0f; } } // Use this for initialization void Start() @@ -34,6 +36,7 @@ public class AnimationController : MonoBehaviour _objectAnimator.speed = 0; _objectAnimator.SetFloat("Speed", 0); _objectAnimator.SetFloat("AngularSpeed", 0); + _objectAnimator.SetInteger("AnimationType", 1); #if MIDDLEVR _objectAnimator.cullingMode = AnimatorCullingMode.CullUpdateTransforms; @@ -84,7 +87,32 @@ public class AnimationController : MonoBehaviour animationSpeed = position.magnitude / ToolsTime.DeltaTime / 1.4f; - _speed = animationSpeed; + print("agent"); + print(animationSpeed); + print(_timeIdle); + if (animationSpeed > 0.01f) + { + _timeIdle = 0.0f; + if (_oldState != "Walk") + { + _oldState = "Walk"; + } + } + else + { + // wait before entering idle state + _timeIdle += ToolsTime.DeltaTime; + } + if (IsIdle) + { + animationSpeed = 0.0f; + if (_oldState != _defaultIdleAnimation) + { + print("Switching to Idle Animation"); + _oldState = _defaultIdleAnimation; + _objectAnimator.Play(_defaultIdleAnimation); + } + } _objectAnimator.SetFloat("Speed", animationSpeed); _objectAnimator.SetFloat("AngularSpeed", angularSpeed, 100f, ToolsTime.DeltaTime); _objectAnimator.SetBool("One-Eighty", false);