41 lines
1.2 KiB
C#
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);
|
|
}
|
|
}
|
|
} |