Sopravvivere
Fa parte della sezione Architettura dei giochi in Unity del percorso Unity di Coddy. Lezione 47 di 50.
Sfida
MedioUltimo passaggio: la partita termina e viene conservato il miglior risultato. Mantieni tutto ciò che hai realizzato nelle lezioni precedenti. La canvas contiene un GameOverPanel nascosto con ResultText, BestText e un RestartButton con l'etichetta Fight again, e l'oggetto GameManager ha il tuo script GameManager, con hero, spawner, gameOverPanel, resultText, bestText e restartButton assegnati nell'Inspector.
Heroricevepublic event Action Died, che viene generato quando la sua salute raggiunge 0, dopo che si disattiva.- In
GameManager.cs, aggiungi una classe[System.Serializable]BestRunconpublic int waveepublic int kills. GameManagerascolta l'eventoDieddell'eroe eEnemy.Died, che tiene il conto delle uccisioni di questa partita: sottoscrivi gli eventi inOnEnablee annulla la sottoscrizione inOnDisable. InStartcarica il miglior risultato dabest.jsoninApplication.persistentDataPathconJsonUtility, se il file esiste, nasconde il pannello e impostarestartButtonper riavviare il gioco.- Quando l'eroe muore, ferma il gioco (
Time.timeScale0). Il risultato della partita è dato dallaWavedello spawner e dalle uccisioni. È un nuovo record se ha raggiunto un'onda più alta, oppure la stessa onda con più uccisioni: in tal caso diventa il miglior risultato e viene salvato inbest.jsonconJsonUtility.ToJson. Mostra il risultato inresultText, comeWave 2, 7 kills, e il miglior risultato inbestText, comeBest: wave 3, 12 kills, poi mostra il pannello. - Il riavvio reimposta la scala temporale a 1 e carica di nuovo la scena.
Premi Play e combatti finché non cadi, poi prova a battere il tuo record. Poi premi Check.
Provalo tu
using UnityEngine;
public class GameManager : MonoBehaviour
{
// Una lezione successiva completerà questa parte: la fine della partita e il miglior risultato.
}
Tutte le lezioni di Architettura dei giochi in Unity
1Componenti, non gerarchie
Componenti piccoliUno script base per i nemiciComponenti astrattiComponenti che collaboranoRiepilogo: torretta modulare4Dati serializzati
Classi serializzabiliListe nell'InspectorEnum nell'InspectorRiepilogo: tabella del bottino7Macchine a stati
Gli stati come classiUna macchina a statiTransizioniIntelligenze dei nemiciRiepilogo: stati della porta10Progetto: Sopravvissuto nell’arena
L’eroeTipi di nemici5ScriptableObjects
Asset di datiStatistiche delle armiImpostazioni condiviseOndate come datiRiepilogo: database degli oggetti