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