Menu
CoddyTech

Ruang Pelarian

Termasuk bagian Fisika dan Gameplay dalam perjalanan Unity di Coddy. Pelajaran 63 dari 63.

Sebuah ruang pelarian dengan kunci kode. Tiga pelat tekanan abu-abu terletak di lantai, dan pintu di dinding utara hanya terbuka saat pemain menginjaknya dalam urutan yang benar: pelat 1, pelat 2, pelat 3. Tidak ada petunjuk di ruangan yang menunjukkan pelat mana yang mana. Jika pemain menginjak pelat yang salah, urutan kode dimulai lagi dan semua pelat berkedip merah selama satu detik. Pintu yang terbuka tetap terbuka selama beberapa detik, lalu tertutup lagi, tetapi tidak pernah menutup saat pemain berada di sana: selama pemain berdiri di ambang pintu, pintu menunggu.

Skrip Player sudah siap: tombol panah menggerakkan pemain, yang diberi tag Player dan berada di layer Player. Tulis dua skrip: Plate pada setiap pelat dan CodeLock pada Lock.

challenge icon

Tantangan

Sulit

Plate, pada setiap plate (trigger). Inspector memberinya number (1, 2, atau 3) dan codeLock (skrip CodeLock milik Lock).

  • Saat pemain (dengan tag Player) menginjak plate, panggil codeLock.Press(number). Apa pun selain pemain yang mendarat di atasnya tidak melakukan apa-apa.

CodeLock, pada Lock. Inspector memberinya plates (Renderer ketiga plate, sesuai urutan), door (Door), doorway (titik di tengah doorway), dan openTime (4).

  • Sebuah method publik Press(int number). Saat number adalah plate yang diharapkan kode berikutnya (1, lalu 2, lalu 3), catat nilainya, seperti Plate 2. Jika plate itu adalah plate 3, catat juga Unlocked, mulai ulang kode dari plate 1, lalu mulai coroutine yang membuka pintu.
  • Plate lain mencatat Wrong plate, memulai ulang kode dari plate 1, lalu memulai coroutine yang mengubah warna setiap plate menjadi merah (Color.red) selama 1 detik, lalu kembali menjadi abu-abu (Color.gray).
  • Coroutine pintu menonaktifkan pintu dan menunggu selama openTime detik. Lalu coroutine terus menunggu, satu frame setiap kali, selama ada apa pun pada layer Player dalam jarak 1 unit dari doorway. Terakhir, coroutine mengaktifkan pintu kembali dan mencatat Door closed.

Tekan Jalankan, temukan urutannya dan keluar, lalu tekan Periksa.

Coba sendiri

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)
    {
        // periksa kodenya; buat plates berkedip jika ada kode yang salah; buka pintu setelah plate 3
    }
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Fisika dan Gameplay