Schianto e ripartenza
Fa parte della sezione Creare veri giochi del percorso Unity di Coddy. Lezione 31 di 56.
Sfida
MedioUn incidente termina la corsa e un pulsante ne avvia un'altra. Mantieni tutto quello delle lezioni precedenti. Il canvas contiene un GameOverPanel nascosto con un RestartButton con l'etichetta Run again, e la scena riempie due nuovi campi di GameManager, gameOverPanel e restartButton. Il Runner ha un Rigidbody cinematico, quindi riceve messaggi di trigger dagli ostacoli.
In GameManager:
- Sopra la classe, dichiara
public enum GameState { Playing, GameOver }e aggiungi alla classe un campopublic GameState stateche inizialmente valePlaying. - Aggiungi
using UnityEngine.UI;,using UnityEngine.SceneManagement;,public GameObject gameOverPanel;epublic Button restartButton;. - Un metodo pubblico
GameOver()impostastatesuGameOver, impostaspeedsu 0, fermando così ogni ostacolo, e mostra il pannello. Update()non fa nulla se lo stato non èPlaying, così la velocità e la distanza si fermano.- In
Start(), fai in modo cherestartButtonricarichi la scena in corso.
In Runner: quando entra in un trigger con il tag Obstacle, chiama GameManager.Instance.GameOver(). Se lo stato non è Playing, le frecce non fanno nulla.
In Spawner: non generare nulla se lo stato non è Playing.
Premi Play, schiantati e ricomincia, poi premi Check.
Provalo tu
using UnityEngine;
using TMPro;
public class GameManager : MonoBehaviour
{
public static GameManager Instance;
public float speed = 10f;
public float speedUp = 0.5f;
public float maxSpeed = 20f;
public TMP_Text distanceText;
private float distance;
void Awake()
{
Instance = this;
}
void Update()
{
speed = Mathf.Min(speed + speedUp * Time.deltaTime, maxSpeed);
distance += speed * Time.deltaTime;
distanceText.text = "Distance: " + Mathf.FloorToInt(distance) + " m";
}
}
Tutte le lezioni di Creare veri giochi
1Testo sullo schermo
Canvas e testoMostra il punteggioFormattare i numeriUn timer per il conto alla rovesciaRiepilogo: tachimetro4Scene e livelli
Caricare una scenaRiavviare il livelloLivello successivoMantenere i dati tra le sceneRiepilogo: selezione del livello10Progetto: Platform 3D
Il percorsoPiattaforme mobili2Pulsanti 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: Corsa infinita
Tre corsieOstacoli in arrivo9Il nuovo sistema di input
Due sistemi di inputTastiera e mousePremuto in questo frameAzioni di inputRiepilogo: cambio di input