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

时间:2016-06-08 18:49:26

标签: c# unity3d

我正在学习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);
    }
}

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

4 个答案:

答案 0 :(得分:7)

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

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

通过将此值乘以deltaTime值,它可以每秒旋转1度或1弧度。我不熟悉Unity,不能就这个主题发表权威话题。

答案 1 :(得分:2)

数字文字后面的f表示该值将被明确视为float。在这种情况下,如果您要写1而不是1f,则该值将被视为int。一般来说,这并不是什么大问题,因为在需要这种铸造的情况下,整数会自动投入到浮点数中。你真正需要这个的时候就是你写过真正的文字,即1.51.5本身将被视为double而不是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

答案 2 :(得分:0)

1f是一个文字,表示浮点值(数据类型为float)为1。

在这种情况下,它用于表示浮点角度值1,然后乘以Time.deltaTime以获得每秒1度的平滑旋转。

有关详细信息,请参阅Unity的RotateAround文档。

答案 3 :(得分:-10)

它是十六进制数,1F = 31