I have a character camera in a sitting position on a carriage. His movement is solely based on mouse movement and is clamped to prevent clipping with the cart behind him. What I'm looking to do is based on the rotation of the camera when the clamp maximum is reached to transform the camera position into a "standing" position and release the clamps and slowly transform the position of the camera based on how far your looking over to prevent the camera view to just looking at a wall. I tried using an animator of the camera to transform the position when the criteria is met. It works but it looks bad since its a fixed animation it just kinda jumps if it not spot on. So I'm trying to solve it via scripting. I'm using this basic cookie cutter clamp to get the vector coordinates for moving the cameras view. Code (CSharp): xCor += Input.GetAxis("Mouse X") * xSensitivity * Time.deltaTime; yCor += Input.GetAxis("Mouse Y") * ySensitivity * Time.deltaTime; yCor = Mathf.Clamp(yCor, yMinLimit, yMaxLimit); xCor = Mathf.Clamp(xCor, xMinLimit, xMaxLimit); Camera.main.transform.localEulerAngles = new Vector3(-yCor, xCor, 0); I have been using variations of this to move the camera but mostly I'm just getting jumps into the atmosphere, the math is a little past me. Code (CSharp): if (xCor >= Xmax) transform.position = new Vector3(); Any advice would be appreciated.