Simpan Sesi Terbaik
Termasuk bagian Arsitektur Game di Unity dalam perjalanan Unity di Coddy. Pelajaran 60 dari 64.
Arena Survivor selesai: Enemy abstrak dengan dua jenis, IDamageable untuk setiap serangan, gelombang dari ScriptableObject, item yang bisa diambil melalui antarmuka, HUD yang hanya mendengarkan, dan terakhir, penyimpanan JSON untuk permainan terbaik.
Tantangan
SedangSimpan permainan terbaik di best.json.
- Di
GameManager.cs, tambahkan classBestRundengan atribut[System.Serializable], yang memiliki int publikwavedankills. Startmemuatnya daribest.jsondiApplication.persistentDataPathmenggunakanJsonUtility, jika file tersebut ada.- Saat game berakhir, jika wave lebih tinggi, atau wave sama dengan jumlah kills lebih banyak, jadikan itu yang terbaik dan simpan.
bestTextmenampilkanBest: wave 3, 12 kills.
Tekan tombol “Main” lalu biarkan karaktermu kalah dua kali: hasil terbaik tetap tersimpan. Lalu tekan tombol “Periksa”.
Coba sendiri
using System.IO;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
using TMPro;
public class GameManager : MonoBehaviour
{
[SerializeField] private Hero hero;
[SerializeField] private WaveSpawner spawner;
[SerializeField] private GameObject gameOverPanel;
[SerializeField] private TMP_Text resultText;
[SerializeField] private TMP_Text bestText;
[SerializeField] private Button restartButton;
private int kills;
void OnEnable()
{
hero.Died += GameOver;
Enemy.Died += CountKill;
}
void OnDisable()
{
hero.Died -= GameOver;
Enemy.Died -= CountKill;
}
void Start()
{
gameOverPanel.SetActive(false);
restartButton.onClick.AddListener(Restart);
}
void CountKill(Enemy enemy)
{
kills++;
}
void GameOver()
{
Time.timeScale = 0f;
int wave = spawner.Wave;
resultText.text = "Wave " + wave + ", " + kills + " kills";
gameOverPanel.SetActive(true);
}
void Restart()
{
Time.timeScale = 1f;
SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
}
}
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Arsitektur Game di Unity
1Komponen, Bukan Hierarki
Komponen KecilSkrip Dasar MusuhKomponen AbstrakKomponen yang Bekerja BersamaRangkuman: Turret ModularRangkuman: Meriam Kembar4Data yang Diserialisasi
Class yang Dapat DiserialisasiList di InspectorEnum di InspectorRangkuman: Tabel LootRangkuman: Acak Loot7Mesin Status
Status sebagai ClassStatus SiagaMesin StatusTransisiOtak MusuhKsatria MenyerangRangkuman: Status Pintu10Proyek: Bertahan Hidup di Arena
Sang PahlawanJenis Musuh2Antarmuka di Unity
IDamageableAntarmuka dan TryGetComponentGetComponentsRingkasan: Tombol InteractRingkasan: Terdekat dalam Jangkauan5ScriptableObjects
Aset DataStatistik SenjataPengaturan BersamaSelamatkan AnginGelombang sebagai DataRekap: database ItemBeli dari Toko8Kode yang Dapat Digunakan Kembali
Extension methodSingleton GenerikHelper GenerikUlasan: FindNearestLatihan sendiri: Playground Unity