首页 > 解决方案 > 如何使变换每秒旋转 n 次?

问题描述

我希望它以从 0 到非常快的速度旋转。但是,如果我将自旋的值更改为 10,它几乎不会移动,而 200 会使它缓慢移动。2000 让它移动得很快,但那有多快呢?如果我想让它每秒旋转 10 次,我该怎么Rotate做?

public float rotationSpeed;

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

标签: c#unity3d

解决方案


您使用它的方式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);

推荐阅读