Riepilogo: gestore del round
Fa parte della sezione Creare veri giochi del percorso Unity di Coddy. Lezione 16 di 60.
Questo capitolo ha dato al gioco un gestore: un singleton a cui gli altri accedono senza un campo e gli stati tra cui passa. Il gestore del round mette entrambi al lavoro.
Sfida
FacileCompleta la raccolta delle monete; SetState è già scritto.
- Aggiungi
public static RoundManager Instance;, impostandolo inAwake(). - In
Update(), usa uno switch sustate: Ready attende Space; Playing fa il conto alla rovescia ditimeLeft, poi passa allo stato Ready successivo oppure a Finished dopo l’ultimo round. public bool TakeCoin(): solo durante Playing, conteggia la moneta, mostraCoins: 2e restituisce true.Coin.csdistrugge una moneta conteggiata che il Player tocca.
Premi «Gioca» per tutti e tre i round. Poi premi «Verifica».
Provalo tu
using UnityEngine;
using TMPro;
public enum RoundState { Ready, Playing, Finished }
public class RoundManager : MonoBehaviour
{
// il singleton: un'Instance statica, impostata in Awake()
public GameObject readyPanel;
public GameObject playPanel;
public GameObject finishedPanel;
public TMP_Text roundText;
public TMP_Text coinsText;
public TMP_Text finalText;
public int rounds = 3;
public float roundTime = 4f;
private RoundState state;
private int round = 1;
private int coins;
private float timeLeft;
void Start()
{
SetState(RoundState.Ready);
}
void Update()
{
// seleziona in base a state: Ready attende Space; Playing fa il conto alla rovescia
}
void SetState(RoundState next)
{
state = next;
readyPanel.SetActive(next == RoundState.Ready);
playPanel.SetActive(next == RoundState.Playing);
finishedPanel.SetActive(next == RoundState.Finished);
if (next == RoundState.Ready) roundText.text = "Round " + round;
if (next == RoundState.Playing) timeLeft = roundTime;
if (next == RoundState.Finished) finalText.text = "Coins: " + coins;
}
// TakeCoin(): una moneta viene conteggiata solo durante Playing
}
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Creare veri giochi
1Testo sullo schermo
Canvas e testoMostra il punteggioFormattare i numeriUn timer per il conto alla rovesciaRiepilogo: tachimetro2Pulsanti e schermate
Pulsanti e onClickLambdaCollegare nell'InspectorPannelli attivi e disattiviBarre della saluteRiepilogo: negozio degli upgrade5Salvare con PlayerPrefs
Salvare un numeroCaricare con un valore predefinitoPunteggio massimoSalvare le impostazioniRiepilogo: monete in banca8Controller del personaggio
CharacterController.MoveGravità manualeSaltoSpingere gli oggettiMuoviti dove guardiRiepilogo: doppio salto3Il gestore del gioco
Uno script gestisce il giocoIl SingletonStati di giocoSelezionare lo statoRiepilogo: gestore del round6Progetto: Runner infinito
Tre corsieOstacoli in arrivo9Il nuovo sistema di input
Due sistemi di inputTastiera e mousePremuto in questo frameAzioni di inputRiepilogo: cambio di inputEsercitati da solo: Playground Unity