# Clamping X rotation on camera.

Hey, I’ve been making a 3rd Person Controller for my game, and I can get the rotation of the camera working, however it currently can rotate infinitely on the X axis, I only want it to be able to rotate a certain amount.

I’ve tried other solutions online and nothing has worked. Here is my current code (I got this from someone else)

Btw it’s in the update function.

``````void Update()
{
rb.MovePosition(transform.position += transform.forward * speed * Input.GetAxis("Vertical") * Time.fixedDeltaTime);
rb.MovePosition(transform.position += transform.right * speed * Input.GetAxis("Horizontal") * Time.fixedDeltaTime);

if(Input.GetButtonDown("Jump"))
{
if(canJump)
{
rb.velocity = transform.up * speed;
}
}

//CAMERA ROTATION

if(Input.GetKey(KeyCode.Mouse1))
{
float rotY = Input.GetAxis("Mouse Y") * sensitivity;
//Rotating the Player around Y axis
transform.RotateAround(transform.position, transform.up, Input.GetAxis("Mouse X") * sensitivity * 20 * Time.deltaTime);
//Rotating the Camera around X axis
rotY = Mathf.Clamp(rotY, -15, 15);
_camera.transform.localEulerAngles = new Vector3(-rotY, 0f, 0f);
}
}
``````

If anyone could help me it would be great, thanks.

transform.localEulerAngles is calculated from .transform.localRotation so it sometimes go negative or completely mess up 3 axis. you should create a Vector3 in your class and use it for the rotation