Menu
CoddyTech

If và else

Thuộc phần Những kiến thức cơ bản về lập trình trong Unity trong hành trình Unity của Coddy. Bài học 6 trên 85.

Kiểu bool lưu một trong hai giá trị: true hoặc false. Cánh cửa có mở không? Người chơi có đang ở trên mặt đất không? Trò chơi đã kết thúc chưa?

bool gameOver = false;

Câu lệnh if chỉ chạy các dòng lệnh bên trong khi điều kiện đúng, còn else chạy các dòng lệnh bên trong khi điều kiện không đúng. Dấu ngoặc nhọn { } bao quanh các dòng lệnh thuộc mỗi phần:

if (gameOver)
{
    transform.position = new Vector3(0, -2, 0);
}
else
{
    transform.position = new Vector3(0, 2, 0);
}

Đoạn code này làm một đối tượng chìm xuống khỏi tầm nhìn khi trò chơi kết thúc và giữ đối tượng ở phía trên khi trò chơi vẫn tiếp diễn. Code như thế này nằm bên trong một phương thức, chẳng hạn như Update(), không bao giờ nằm sau dấu } cuối cùng của lớp.

Unity cũng trả lời các câu hỏi bằng giá trị bool. Input.GetKey(KeyCode.Space) trả về true khi người chơi giữ phím cách và false trong thời gian còn lại, vì vậy Update() có thể kiểm tra giá trị này trong mỗi khung hình.

challenge icon

Thử thách

Dễ

Giữ phím Space sẽ nâng cánh cổng lên.

  1. Bên dưới hai chú thích trong Update(), viết if (open) với transform.position = new Vector3(0, 3, 0); bên trong cặp dấu ngoặc nhọn.
  2. Sau đó, viết else với transform.position = new Vector3(0, 1, 0); bên trong cặp dấu ngoặc nhọn.

Nhấn Chơi, nhấp vào trò chơi rồi giữ phím Space: cánh cổng sẽ nâng lên và hạ xuống khi bạn thả phím. Sau đó, nhấn Kiểm tra.

Tự làm thử

using UnityEngine;

public class Gate : MonoBehaviour
{
    void Update()
    {
        bool open = Input.GetKey(KeyCode.Space);

        // Nếu open là true, di chuyển cổng đến (0, 3, 0).
        // Nếu không, di chuyển cổng đến (0, 1, 0).
    }
}

Tất cả bài học trong Những kiến thức cơ bản về lập trình trong Unity

Tự luyện tập: Playground Unity