Menu
CoddyTech

小数需要加 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。

challenge icon

挑战

简单

修复气球的脚本,然后让它飘得更高、更大。

  1. 按“开始”:控制台会在 height 行显示错误 CS0664。
  2. 将这一行改为 float height = 3.5f;。
  3. 将大小那一行改为 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 在线编辑器