Unity 记录

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

上一篇下一篇

猜你喜欢

热点阅读