如何使变换每秒旋转n次?

时间:2019-05-22 18:50:11

标签: c# unity3d

我希望它以从0到非常快的速度旋转。 但是,如果我将旋转的值更改为10,则几乎不会移动,而将200使其缓慢移动。 2000使它运行很快,但是速度有多快?如果我想使其每秒旋转10次,该如何使用Rotate来做到这一点?

public float rotationSpeed;

private void Update()
{
  scaling.objectToScale.transform.Rotate(Vector3.up, rotationSpeed * Time.deltaTime);
}

1 个答案:

答案 0 :(得分:2)

您使用它的方式rotationSpeed是每秒旋转度数的度量

Rotate的第二个参数需要旋转多个角度。

Time.deltaTime是自上一帧以来经过了几秒钟。

每秒10度表示它每36秒旋转一次(360/10 = 36)。

每秒2000度表示它每0.18秒旋转一次(360/2000 = 0.18),换句话说,它每秒旋转5.56次(2000/360 = 5.56)。

如果您想每秒旋转n次,请执行以下操作:

rotationSpeed = n * 360f;

// ...

scaling.objectToScale.transform.Rotate(Vector3.up, rotationSpeed * Time.deltaTime);

如果您想花n秒旋转一次,请执行以下操作:

rotationSpeed = 360f / (float)n;

// ...

scaling.objectToScale.transform.Rotate(Vector3.up, rotationSpeed * Time.deltaTime);