slowpoker/Assets/Scripts/Player/CameraController.cs

38 lines
1.2 KiB
C#
Raw Normal View History

2024-10-17 17:23:05 +03:00
using UnityEngine;
namespace Player
{
public class CameraController : MonoBehaviour
{
public Transform targetCameraPosition;
public float mouseSensitivity = 100f;
private Camera _camera;
private Transform _cameraTransform;
private float _xRotation = 0f;
void Start()
{
_camera = Camera.main;
if (_camera != null) _cameraTransform = _camera.transform;
Cursor.lockState = CursorLockMode.Locked;
}
void Update()
{
float mouseX = Input.GetAxis("Mouse X") * mouseSensitivity * Time.deltaTime;
float mouseY = Input.GetAxis("Mouse Y") * mouseSensitivity * Time.deltaTime;
_xRotation -= mouseY;
_xRotation = Mathf.Clamp(_xRotation, -90f, 90f);
2024-10-17 23:09:51 +03:00
if (Cursor.lockState == CursorLockMode.Locked)
{
transform.Rotate(Vector3.up * mouseX);
2024-10-19 15:47:54 +03:00
_cameraTransform.localRotation = Quaternion.Euler(_xRotation, 0f, 0f);
2024-10-17 23:09:51 +03:00
_cameraTransform.rotation = Quaternion.Euler(_xRotation, transform.eulerAngles.y, 0f);
_cameraTransform.position = targetCameraPosition.position;
}
2024-10-17 17:23:05 +03:00
}
}
}