using StateMachine; using UnityEngine; namespace Player.States { public class Walk : State { private readonly Player _player; private static readonly int AnimWalk = Animator.StringToHash("Walk"); public Walk(Player player) : base(PlayerState.Walk) { _player = player; } public override void Enter() { _player.animator.SetBool(AnimWalk, true); } public override void Update() { Vector3 velocity = _player.moveDirection * (_player.walkSpeed * Time.deltaTime); _player.playerRigidbody.velocity = new Vector3(velocity.x, _player.playerRigidbody.velocity.y, velocity.z); if (Input.GetKey(KeyCode.LeftShift) && (Input.GetAxis("Horizontal") != 0f || Input.GetAxis("Vertical") != 0f)) { _player.StateMachine.SetCurrentState(PlayerState.Run); } } public override void Exit() { _player.animator.SetBool(AnimWalk, false); } } }