网站设计师的工作内容,企业搭建一个营销型网站多少钱,wordpress电商主题搭建,建设银行山西招聘网站前言
由于欧拉角具有直观的可读性#xff0c;做相机旋转时选择修改eulerAngles 来实现旋转#xff0c;但实际效果与预期稍有不同#xff0c;这是因为欧拉角受到万向锁#xff08;Gimbal Lock#xff09;的影响#xff0c;在赋值时需要对输入的角度进行调整。
if (value…前言
由于欧拉角具有直观的可读性做相机旋转时选择修改eulerAngles 来实现旋转但实际效果与预期稍有不同这是因为欧拉角受到万向锁Gimbal Lock的影响在赋值时需要对输入的角度进行调整。
if (value 180)
{value Mathf.Clamp(value, -180, -min);
}
else
{value Mathf.Clamp(value, 360 - max, 360);
}
实现
private void Rotate()
{xInput Input.GetAxis(Mouse X);yInput Input.GetAxis(Mouse Y);float xAngle transCam.eulerAngles.x - yInput * speedRotate;float yAngle transCam.eulerAngles.y xInput * speedRotate;xAngle Clamp(xAngle, minAngleX, maxAngleX);yAngle Clamp(yAngle, minAngleY, maxAngleY);transCam.eulerAngles new Vector3(xAngle, yAngle, 0);float Clamp(float value, float min, float max){if (min max){float temp min;min max;max temp;}if (value 180){value Mathf.Clamp(value, -180, -min);}else{value Mathf.Clamp(value, 360 - max, 360);}return value;}
}