Rekap: Keadaan Pintu
Termasuk bagian Arsitektur Game di Unity dalam perjalanan Unity di Coddy. Pelajaran 32 dari 50.
Tantangan
SedangPintu kastel dengan kunci. Tombol panah menggerakkan Player, dan Key emas memanggil door.Unlock() saat pemain mengambilnya (keduanya sudah siap). IState dan StateMachine dari bab ini sudah ada di proyek. Door.cs memiliki nilai Inspector (closedY 1.5, openY 4, speed 2, stayOpen 2, reach 2.5), field machine dan PlayerNear(). Buat lima state untuk pintu sebagai class di DoorStates.cs dengan nama LockedState, ClosedState, OpeningState, OpenState dan ClosingState:
- Pintu dimulai dalam keadaan Locked. Menekan Space saat berada di dekatnya (
PlayerNear()) hanya mencatatLockedke log.Unlock()mengubah pintu yang terkunci menjadi Closed dan tidak melakukan apa pun dalam state lain. - Closed: Menekan Space di dekat pintu akan mulai membukanya.
- Opening: pintu naik dengan kecepatan
speedhingga nilai y-nya mencapaiopenY, lalu masuk ke state Open. - Open: pintu mulai menutup setelah
stayOpendetik. - Closing: pintu turun dengan kecepatan
speedhingga nilai y-nya mencapaiclosedY, lalu masuk ke state Closed. Menekan Space di dekat pintu saat pintu sedang turun akan membukanya kembali dari posisinya saat itu.
Tekan Play, coba pintu yang terkunci, ambil kunci, buka pintu dan berjalanlah melewatinya, lalu tekan Periksa.
Coba sendiri
using UnityEngine;
// LockedState, ClosedState, OpeningState, OpenState, dan ClosingState
Semua pelajaran di Arsitektur Game di Unity
1Komponen, Bukan Hierarki
Komponen KecilSkrip Dasar MusuhKomponen AbstrakKomponen yang Bekerja SamaRingkasan: Turret Modular5ScriptableObjects
Aset DataStatistik SenjataPengaturan BersamaGelombang sebagai DataUlasan: database Item8Kode yang Dapat Digunakan Kembali
Extension methodSingleton GenerikHelper GenerikUlasan: FindNearest