Menu
CoddyTech

El choque pone fin a la partida

Parte de la sección Creación de juegos reales del Journey de Unity de Coddy. Lección 31 de 60.

challenge icon

Desafío

Intermedio

Un choque debería detener la partida.

  1. Encima de GameManager, declara public enum GameState { Playing, GameOver }; dentro, añade public GameState state = GameState.Playing;.
  2. public void GameOver() establece state en GameState.GameOver y speed en 0, y muestra gameOverPanel.
  3. Runner llama a GameManager.Instance.GameOver() al entrar en contacto con un objeto con la etiqueta Obstacle. GameManager, Runner y Spawner comienzan Update() con un return salvo que el estado sea Playing.

Pulsa «Jugar» y choca: todo se detiene. Después, pulsa «Comprobar».

Pruébalo tú mismo

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";
    }
}

Todas las lecciones de Creación de juegos reales

Practica por tu cuenta: Playground de Unity