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.
Thử thách
KhóKết nối các tấm và code theo thứ tự: 1, 2, 3.
- Trong
Plate, khiPlayerđi vào, hãy gọicodeLock.Press(number);. - Trong
Press, vớiint next = 1: nếu khớp, ghi lại"Plate " + numberrồi tăng thêm 1; sau số 3, ghi lạiUnlockedrồi đặt lạinext. - Nếu không, ghi lại
Wrong plate, đặt lạinextrồi chạy một coroutine: đặt các tấm thànhColor.red, chờ 1 giây, sau đó đặt thànhColor.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
1Rigidbody
Trọng lực và khối lượngĐẩy bằng AddForceNhảy bằng xung lựcFixedUpdate cho vật lýVận tốcVật thể động họcÔn tập: Bệ phóng4Coroutine
InvokeInvokeRepeating, CancelInvokeCoroutine đầu tiên của bạnVòng lặp trong CoroutineDừng CoroutineÔn tập: đếm ngược10Dự án: Thoát khỏi đấu trường
Đấu trườngThợ săn2Va chạm
OnCollisionEnterMình đã va chạm với gì?Vỡ khi va chạmĐứng trên mặt đấtĐộ nảy và ma sátHình dạng colliderÔn tập: Tường có thể phá vỡ5Dự án: Cuộc đua thu thập xu
Quả bóng lănThu thập xuTự luyện tập: Playground Unity