scroll to increase and decrease walk speed

This commit is contained in:
0ceanSlim 2023-10-31 16:25:12 -04:00
parent a55e58a15c
commit 59f320622e

View File

@ -26,6 +26,11 @@ public class FirstPersonController : MonoBehaviour
[SerializeField] private KeyCode crouchKey = KeyCode.C;
[Header("Movement Parameters")]
[SerializeField] private float minWalkSpeed = 1.0f;
[SerializeField] private float maxWalkSpeed = 5.0f;
[SerializeField] private float walkSpeedInterval = 0.5f;
private float currentWalkSpeed;
[SerializeField] private float walkSpeed = 3.0f;
[SerializeField] private float sprintSpeed = 6.0f;
[SerializeField] private float crouchSpeed = 1.5f;
@ -75,6 +80,7 @@ public class FirstPersonController : MonoBehaviour
defaultYPos = playerCamera.transform.localPosition.y;
Cursor.lockState = CursorLockMode.Locked;
Cursor.visible = false;
currentWalkSpeed = walkSpeed;
}
@ -95,6 +101,7 @@ public class FirstPersonController : MonoBehaviour
CanMove = true;
HandleMovementInput();
HandleMouseLook();
HandleSpeedChange();
if (canJump)
HandleJump();
@ -190,5 +197,29 @@ public class FirstPersonController : MonoBehaviour
duringCrouchAnimation = false;
}
private void HandleSpeedChange()
{
float scroll = Input.GetAxis("Mouse ScrollWheel");
if (scroll > 0)
{
// Increase walk speed if within the maximum limit
if (currentWalkSpeed < maxWalkSpeed)
{
currentWalkSpeed += walkSpeedInterval;
}
}
else if (scroll < 0)
{
// Decrease walk speed if within the minimum limit
if (currentWalkSpeed > minWalkSpeed)
{
currentWalkSpeed -= walkSpeedInterval;
}
}
// Update the walk speed
walkSpeed = currentWalkSpeed;
}
}