试图找出一种方法,在旋转器通过360度后增加旋转计数。尽管由于eulerAngles会在360处重置,所以这永远都行不通。有什么好方法吗?我尝试做> 355,但这不是一个很好的解决方案。

            Spinner.transform.Rotate(0, 0, speed);
            float angleZ = Spinner.rotation.eulerAngles.z;

            if (angleZ > 360)
            {
                Rotations++;
            }

最佳答案

您需要在旋转之前和之后检查角度。

根据文档,“速度”是旋转的度数,因此将“ 360”的速度整数除以“旋转”,然后检查是否已重置了最终值。

float angleZ1 = Spinner.rotation.eulerAngles.z;
Spinner.transform.Rotate(0, 0, speed);
float angleZ2 = Spinner.rotation.eulerAngles.z;
float angleZDiff = angleZ2 - angleZ1;


Rotations += (int)(speed / 360);
if ((speed >0) && (angleZDiff < 0))
    Rotations++
else if ((speed < 0) && (angleZDiff > 0))
    Rotations--;

09-11 19:19
查看更多