Menu
CoddyTech

比较数字

本课属于 Coddy Unity 学习旅程的“Unity 脚本基础”单元。第 7 课,共 85 课。

大多数条件都会比较两个值,每次比较都会得到一个 bool:

  • a == b:a 等于 b。两个等号:一个 = 会把值赋给变量。
  • a != b:a 不等于 b
  • a < b 和 a > b:小于、大于
  • a <= b 和 a >= b:小于或等于、大于或等于

如果要同时询问两件事,可以把它们连接起来:&& 表示“并且”(两者都必须为 true),|| 表示“或者”(满足一个就够了)。

if (coins >= 10 && level == 3)
{
    Debug.Log("The shop is open");
}

Input.GetKeyDown(KeyCode.E) 也是一个 bool,但与 GetKey 不同,它只会在按键按下的那一帧为 true,因此无论按键按住多久,一次按下都只计数一次。

challenge icon

挑战

简单

当玩家拥有至少 3 把钥匙并按下 E 时,门应该打开。

  1. 在 Update() 中 K 代码块的下方,不要写在代码块内部,写入 if (keys >= 3 && Input.GetKeyDown(KeyCode.E))。
  2. 在它的大括号内,写入 transform.position = new Vector3(0, 4.5f, 3);。

按下 运行,按 K 三次,然后按 E:门会向上滑动。然后点击 检查。

亲手试试

using UnityEngine;

public class KeyDoor : MonoBehaviour
{
    int keys = 0;

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.K))
        {
            keys++;
            Debug.Log("Keys: " + keys);
        }

        // 有 3 把或更多钥匙时,按 E 键打开门:
        // 将门移到 (0, 4.5f, 3)。
    }
}

Unity 脚本基础中的所有课

自己练习: Unity 在线编辑器