Menu
CoddyTech

L'impatto termina la corsa

Fa parte della sezione Creare veri giochi del percorso Unity di Coddy. Lezione 31 di 60.

challenge icon

Sfida

Medio

Un incidente dovrebbe interrompere la corsa.

  1. Sopra GameManager, dichiara public enum GameState { Playing, GameOver }; al suo interno, aggiungi public GameState state = GameState.Playing;.
  2. public void GameOver() imposta state su GameState.GameOver e speed su 0, e mostra gameOverPanel.
  3. Runner chiama GameManager.Instance.GameOver() quando si attiva un trigger con il tag Obstacle. GameManager, Runner e Spawner iniziano Update() con un return se lo stato non è Playing.

Premi «Gioca» e fai un incidente: tutto si ferma. Poi premi «Verifica».

Provalo tu

using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
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;
    public GameObject gameOverPanel;
    public Button restartButton;
    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

Esercitati da solo: Playground Unity