Unity关于欧拉角判断负数的问题
2019-03-09 本文已影响6人
Clean_1306
处理方式一:
Unity中,比如欧拉角为-5度的时候,Unity的处理结果为355度,如果此时需要判断是否为负数的时候可以减去360度以得到负数!!!
例如这样:
//获取摄像机x轴向的欧拉角
float x = transform.eulerAngles.x;
if (x > 180)
{
x -= 360;
}
思路:
当然,这样做的话,需要把欧拉角分成两个180度组成的角才行,小于等于180度的为正数,大于180度的为负数,就能很好的处理角度的限制啦!23333
处理方式二:
可以使用这个api来限制角度
Quaternion.Euler();
float y;
public float speed = 15;
void RotateTest()
{
y += Input.GetAxis("Mouse Y") * speed * Time.deltaTime;
if (y > 30)
{
y = 30;
}
else if (y < -30)
{
y = -30;
}
Quaternion q = Quaternion.Euler(y, transform.eulerAngles.y, transform.eulerAngles.z);
transform.rotation = q;
}
思路:
如上代码所示,可以利用公式 :” 结果+=Speed * Time.dealTime”来计算当前移动的角度,然后通过
这个函数可以传入一个Vector3类型的参数来返回一个四元数,利用这个四元数可以设置旋转即可!2333