Menu
CoddyTech

Phòng thoát hiểm

Thuộc phần Vật lý và lối chơi trong hành trình Unity của Coddy. Bài học 70 trên 71.

Một phòng thoát hiểm có khóa mã. Ba tấm áp lực màu xám nằm trên sàn, còn cánh cửa ở bức tường phía bắc chỉ mở khi người chơi bước lên chúng theo đúng thứ tự: tấm 1, tấm 2, tấm 3. Trong phòng không có gì cho biết tấm nào là tấm nào. Nếu bước lên nhầm tấm, mã sẽ bắt đầu lại và tất cả các tấm sẽ nhấp nháy đỏ trong một giây. Cánh cửa đang mở sẽ giữ nguyên trong vài giây rồi đóng lại, nhưng không bao giờ đóng khi người chơi còn ở trong ngưỡng cửa: khi người chơi đứng ở đó, cửa sẽ chờ.

Script Player đã sẵn sàng: các phím mũi tên điều khiển người chơi di chuyển. Người chơi được gắn thẻ Player và nằm trên lớp Player. Hãy viết hai script: Plate cho mỗi tấm và CodeLock cho khóa.

challenge icon

Thử thách

Khó

Kết nối các tấm và code theo thứ tự: 1, 2, 3.

  1. Trong Plate, khi Player đi vào, hãy gọi codeLock.Press(number);.
  2. Trong Press, với int next = 1: nếu khớp, ghi lại "Plate " + number rồi tăng thêm 1; sau số 3, ghi lại Unlocked rồi đặt lại next.
  3. Nếu không, ghi lại Wrong plate, đặt lại next rồi chạy một coroutine: đặt các tấm thành Color.red, chờ 1 giây, sau đó đặt thành Color.gray.

Nhấn Chơi và tìm thứ tự. Sau đó nhấn Kiểm tra.

Tự làm thử

using System.Collections;
using UnityEngine;

public class CodeLock : MonoBehaviour
{
    [SerializeField] private Renderer[] plates;
    [SerializeField] private GameObject door;
    [SerializeField] private Transform doorway;
    [SerializeField] private float openTime = 4f;

    public void Press(int number)
    {
        // kiểm tra mã; cho các tấm sáng nhấp nháy khi nhập sai; mở cửa sau tấm thứ 3
    }
}

Tất cả bài học trong Vật lý và lối chơi

Tự luyện tập: Playground Unity