2025-02-27 19:11:37 +01:00

47 lines
1.4 KiB
C#

using UnityEngine;
namespace IdyllicFantasyNature
{
public class CameraMovement : MonoBehaviour
{
[Range(1f, 10f)]
[Tooltip("speed of the camera movement")]
[SerializeField] private float _mouseSensity = 1;
// mouse rotation
private float _xRotation;
private float _yRotation;
[Tooltip("the parent of this object")]
[SerializeField] private Transform _controller;
// Start is called before the first frame update
private void Start()
{
// locks cursor and makes it invisible
Cursor.lockState = Cursor.lockState;
Cursor.visible = false;
}
// Update is called once per frame
void Update()
{
// get input of the mouse
float mouseX = Input.GetAxis("Mouse X") * _mouseSensity;
float mouseY = Input.GetAxis("Mouse Y") * _mouseSensity;
_yRotation += mouseX;
_xRotation -= mouseY;
// limits camera rotation
_xRotation = Mathf.Clamp(_xRotation, -90f, 90f);
// rotates camera on the y- and x-axis
transform.rotation = Quaternion.Euler(_xRotation, _yRotation, 0);
// rotates the controller on the y-axis so that it is on the same rotation as the camera
_controller.rotation = Quaternion.Euler(0, _yRotation, 0);
}
}
}