我正在学习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旋转需要多长时间!所以你能用秒或分钟告诉我这个数字吗?所以我可以将自己设置为自定义持续时间。提前致谢
答案 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.5
。 1.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