Code (CSharp): using System.Collections; using System.Collections.Generic; using UnityEngine; public class CameraController : MonoBehaviour { private GameObject player; private float speedH = 2.0f; private float speedV = 2.0f; private float yaw = 0.0f; private float pitch = 0.0f; private void Awake() { Cursor.lockState = CursorLockMode.Locked; player = transform.parent.gameObject; } private void Update() { Cursoru(); } private void Cursoru() { yaw += speedH * Input.GetAxis("Mouse X"); pitch -= speedV * Input.GetAxis("Mouse Y"); transform.eulerAngles = new Vector3(Mathf.Clamp(pitch, -45f, 45f);, yaw, 0.0f); player.transform.eulerAngles = new Vector3(0.0f, yaw, 0.0f); } } When I run the code I can rotate the camera correctly and so on. But if I keep moving the mouse up or down, and then I want to look in the opposite direction, I have to move it a lot so it actually rotates the camera. I don't get any error in console so I don't know what I can do to solve that bug.
Nevermind, I've just fixed it I tried to do this once but it didn't look like it worked. Now it worked I just added this code pitch = Mathf.Clamp(pitch, -45f, 45f); over the line that says transform.eulerAngles = new Vector3(Mathf.Clamp(pitch, -45f, 45f), yaw, 0.0f); and then replace the Mathf.Clamp() on the new Vector3() with the variable.