Malam Bertahan Hidup
Termasuk bagian Membangun Game Sungguhan dalam perjalanan Unity di Coddy. Pelajaran 56 dari 56.
Seorang penyintas berdiri di sebuah lapangan gelap, dan kelelawar berdatangan untuk menyerangnya sepanjang malam, satu kelelawar baru setiap beberapa detik dari salah satu dari empat sudut lapangan. Setiap kelelawar terbang lurus ke arah penyintas, dan kelelawar pertama yang mencapainya mengakhiri malam. Jam di bagian atas menghitung detik hingga fajar: bertahanlah sampai saat itu dan kamu menang. Tombol Jeda membekukan semuanya, dan saat malam berakhir, Main lagi memulai malam baru.
Skrip Player, yang menggerakkan penyintas dengan aksi Move, sudah ditulis. Tulis GameManager dan Bat.
Tantangan
SulitInspector memberikan GameManager nilai nightLength (15), spawnEvery (2), batPrefab, spawnPoints (keempat sudut), dawnText, pauseButton, pausePanel, endPanel, endText, dan restartButton.
- Ini adalah singleton (
public static GameManager Instance), dan memilikipublic enum Statebersarang denganPlaying,Paused,Won, danLost, sertapublic State state. Malam dimulai dalam status Playing. - Saat statusnya Playing: jumlah detik yang tersisa berkurang dari
nightLength, ditampilkan dengan pembulatan ke atas, sepertiDawn in 12; setiapspawnEverydetik, seekor kelelawar muncul di salah satuspawnPointsyang dipilih secara acak. Saat waktu habis, status malam menjadi Won. pauseButtonmengubah status Playing menjadi Paused dan sebaliknya. Status Paused menghentikan waktu game (Time.timeScale0) dan menampilkanpausePanel; saat kembali ke status Playing, waktu berjalan lagi dan panel disembunyikan. Dalam status Won atau Lost, tombol ini tidak melakukan apa pun.Lose()yang bersifat public mengubah status malam dari Playing menjadi Lost.- Status Won dan Lost menghentikan waktu game serta menampilkan
endPaneldenganendTextyang berisiYou survived the night!atauThe bats got you. restartButtonmemulai malam baru dengan memuat ulang scene.
Inspector memberikan nilai speed (2) dan reach (1) kepada Bat. Saat status malam Playing, kelelawar terbang menuju pemain (yang memiliki tag Player) dengan kecepatan speed, sambil mempertahankan ketinggiannya. Saat kelelawar berada dalam jarak reach dari pemain di bidang tanah, kelelawar memanggil Lose().
Tekan Play dan coba bertahan sampai fajar, lalu tekan Check.
Coba sendiri
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
using TMPro;
public class GameManager : MonoBehaviour
{
public float nightLength = 15f;
public float spawnEvery = 2f;
public GameObject batPrefab;
public Transform[] spawnPoints;
public TMP_Text dawnText;
public Button pauseButton;
public GameObject pausePanel;
public GameObject endPanel;
public TMP_Text endText;
public Button restartButton;
}
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Membangun Game Sungguhan
4Scene dan Level
Muat SceneMulai Ulang LevelLevel BerikutnyaPertahankan Antar-SceneRekap: Pilih Level10Proyek: Platformer 3D
LintasanPlatform Bergerak2Tombol dan Layar
Tombol dan onClickLambdaMenghubungkan di InspectorPanel Aktif dan NonaktifBilah KesehatanRangkuman: Toko Upgrade5Menyimpan dengan PlayerPrefs
Simpan AngkaMuat dengan Nilai DefaultSkor TertinggiSimpan PengaturanUlasan: Koin di Bank