Menu
CoddyTech

La collision met fin à la course

Fait partie de la section Créer de vrais jeux du Journey Unity de Coddy. Leçon 31 sur 60.

challenge icon

Défi

Moyen

Une collision doit arrêter la partie.

  1. Au-dessus de GameManager, déclare public enum GameState { Playing, GameOver } ; à l’intérieur, ajoute public GameState state = GameState.Playing;.
  2. public void GameOver() définit state sur GameState.GameOver et speed sur 0, puis affiche gameOverPanel.
  3. Runner appelle GameManager.Instance.GameOver() lorsqu’il entre en collision avec un objet dont l’étiquette est Obstacle. GameManager, Runner et Spawner commencent Update() par un return si ce n’est pas Playing.

Appuie sur « Jouer » et provoque une collision : tout s’arrête. Puis appuie sur « Vérifier ».

Essayez vous-même

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

Toutes les leçons de Créer de vrais jeux

Entraînez-vous par vous-même : Playground Unity