1F在以下代码中表示什么?

0 c# unity-game-engine

我正在学习Unity 5,我对编程一无所知.但是我在Unity看了一个关于"如何制作日/夜循环"的教程,导师写了这个脚本在月亮和太阳之间循环.这是代码:

    using UnityEngine;
using System.Collections;

public class sun : MonoBehaviour {

    // Use this for initialization
    void Start () {

    }

    // Update is called once per frame
    void Update () {
        transform.RotateAround(Vector3.zero, Vector3.right, 1f * Time.deltaTime);
        transform.LookAt(Vector3.zero);
    }
}
Run Code Online (Sandbox Code Playgroud)

骑自行车的速度取决于1F我们可以改变任何数字..但我不知道在太阳和月亮之间做1F旋转需要多长时间!所以你能用秒或分钟告诉我这个数字吗?所以我可以将自己设置为自定义持续时间.提前致谢

Jon*_*Bee 7

在C#中,数字后面的小写字母f表示该值应被视为浮点数.

https://msdn.microsoft.com/en-us/library/b1e65aza.aspx

通过将其乘以deltaTime值,它每秒旋转1度或1弧度.我对Unity不熟悉,不能在这个问题上权威地说话.

  • 外壳并不重要 (2认同)

Bri*_*ien 6

该f数字文字表示该值后,以明确视为一个float。在这种情况下,如果您要写入1而不是1f,则该值将被视为int。通常,这没什么大不了的,因为在需要进行此类转换的情况下,整数会自动将自己转换为浮点数。你真正需要它的时候是你是否曾经写过真正的文字,即1.5. 1.5本身将被视为 adouble而不是 a float。

这对于 Unity 编程非常重要,因为 Unity 库中的许多对象使用浮点数而不是双精度数进行计算。如果您尝试类似transform.RotateAround(Vector3.zero, Vector3.right, 1.5 * Time.deltaTime),则在游戏尝试构建时会出现错误,因为如果没有显式转换,双打不会自动将自己转换为浮点数。要在对 Unity 函数的许多调用中使用真实文字,您需要使用f您所询问的符号将文字指定为浮点数。 new transform.RotateAround(Vector3.zero, Vector3.right, 1.5f * Time.deltaTime)会工作得很好。

在这种情况下,由于它乘以Time.deltaTime(另一个浮点数),您将每秒旋转 1 度。 Time.deltaTime是的,因为最后一帧已通过秒数,所以当你乘的值v通过Time.deltaTime并把它添加了每一帧,你会得到一个稳定发展v每秒。