//当前相机x轴旋转度
private float currentCameraRotationX = 0f;
//相机旋转x 变化值
private float cameraRotationX = 0f;
//相机旋转限制度数
private float cameraRotationLimit = 80f;
if (cam != null)
{
//设定旋转角度
currentCameraRotationX -= cameraRotationX;
currentCameraRotationX = Mathf.Clamp(currentCameraRotationX,-cameraRotationLimit,cameraRotationLimit);
//赋值x旋转
cam.transform.localEulerAngles = new Vector3(currentCameraRotationX,0f,0f);
}
说明:
上述是限制相机x轴旋转角度技巧的关键代码,第一部分 currentCameraRotationX记录当前旋转度数,cameraRotationX记录旋转的传入旋转变化值,cameraRotationLimit记录旋转的限制角度。
方法详解:
当前旋转和传入旋转变化值进行相减操作(相加会反向,此处可以自行测试验证),然后将当前旋转的值进行Mathf.Clamp()操作,限制的参数是cameraRotationLimit。最后对相机cam进行本地角度赋值。