越过0点时Vector3.SignedAngle方向错误

时间:2018-06-19 13:58:16

标签: visual-studio unity3d vector euler-angles

我正在使用Vector3.SignedAngle确定方向盘的旋转方向。

一切正常,直到方向盘越过0度点(方向盘向上)。当它越过0点时,它将给出一次相反的旋转方向。我认为这与“ prevRotationDegrees”位于0点的另一侧有关。

有解决方案吗?

这是我的实现方式

Vector3 currentRotationVector = transform.localRotation.eulerAngles;
        float angle = SignedAngle(prevRotationVector, currentRotationVector, Vector3.up);
        if (angle < -30.0F)
        {
            print("turn left");
            prevRotationVector = currentRotationVector;
        }
        else if (angle > 30.0F)
        {
            print("turn right");
            prevRotationVector = currentRotationVector;
        }

0 个答案:

没有答案