小数需要加 f
本课属于 Coddy Unity 学习旅程的“Unity 脚本基础”单元。第 3 课,共 85 课。
整数对游戏来说还不够:气球以 3.5 的位置漂浮,玩家每秒移动 4.2 个单位。带小数点的数字有自己的类型,叫作 float:
float speed = 4.2f;注意末尾的 f。在 C# 中,普通的 4.2 是另一种小数类型 double,而 Unity 的位置和大小使用的是 float。f 会告诉 C# 这个数字是 float。省略它,Unity 就会拒绝启动游戏,并在控制台中显示这个错误:
error CS0664: Literal of type double cannot be implicitly converted to type 'float'; use an 'F' suffix to create a literal of this type这个错误看起来吓人,但它的意思只是“加上 f”。像 2 这样的整数不需要 f:它本身就可以存入 float。
还有一个容易意外的地方:两个 int 相除时,只会保留整数部分,所以 7 / 2 的结果是 3。写成 7 / 2f 就能得到 3.5。
挑战
简单修复气球的脚本,然后让它飘得更高、更大。
- 按“开始”:控制台会在
height行显示错误 CS0664。 - 将这一行改为
float height = 3.5f;。 - 将大小那一行改为
float size = 1.5f;。每个带小数点的数字后面都需要加f。
按“开始”:气球会飘到 3.5 的高度,大小变为原来的 1.5 倍。然后按“检查”。
亲手试试
using UnityEngine;
public class Balloon : MonoBehaviour
{
void Start()
{
float height = 2.5;
float size = 1;
transform.position = new Vector3(0, height, 0);
transform.localScale = new Vector3(size, size, size);
}
}
Unity 脚本基础中的所有课
自己练习: Unity 在线编辑器