using System.Collections; using System.Collections.Generic; using UnityEngine; namespace Moloch { public class WanderState : BaseState { private LocomotionSM m_SM; private float m_MaxSpeed; public WanderState(LocomotionSM machine) : base("Wander", machine) { m_SM = machine; } public override void Enter() { base.Enter(); m_SM.m_NavMeshAgent.RandomWalk(); m_SM.m_NavMeshAgent.SetSpeed(Random.Range(0.5f, 2.5f)); m_SM.m_NavMeshAgent.SetAcceleration(Random.Range(0.5f, 1f)); } public override void UpdateLogic() { base.UpdateLogic(); if (!m_SM.m_NavMeshAgent.HasReachedWaypoint()) { m_SM.m_NavMeshAgent.StartMoving(); m_SM.m_Animator.SetFloat("Velocity", m_SM.m_NavMeshAgent.m_Agent.velocity.magnitude / 2.5f); } else { m_SM.SwitchState(m_SM.m_idleState); } } public override void Exit() { base.Exit(); m_SM.m_Animator.SetFloat("Velocity", 0); m_SM.m_NavMeshAgent.StopMoving(); } } }