CapersProject/Assets/BOXOPHOBIC/Utils/Scripts/CommonUtils/CamController.cs
2025-03-01 00:44:25 +09:00

41 lines
1.2 KiB
C#

using UnityEngine;
namespace Boxophobic.Utils
{
public class CamController : MonoBehaviour
{
public float movementSpeed = 5f;
public float accelerationMultiplier = 2f;
public float sensitivity = 2f;
private float yaw = 0f;
private float pitch = 0f;
void Start()
{
// Store the initial rotation of the camera
yaw = transform.eulerAngles.y;
pitch = transform.eulerAngles.x;
}
void Update()
{
float currentSpeed = movementSpeed;
if (Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift))
{
currentSpeed *= accelerationMultiplier;
}
float horizontalMovement = Input.GetAxis("Horizontal") * currentSpeed * Time.deltaTime;
float verticalMovement = Input.GetAxis("Vertical") * currentSpeed * Time.deltaTime;
transform.Translate(horizontalMovement, 0, verticalMovement);
yaw += sensitivity * Input.GetAxis("Mouse X");
pitch -= sensitivity * Input.GetAxis("Mouse Y");
pitch = Mathf.Clamp(pitch, -90f, 90f);
transform.rotation = Quaternion.Euler(pitch, yaw, 0f);
}
}
}