Menu
CoddyTech

Zderzenie kończy bieg

Część sekcji Tworzenie prawdziwych gier ścieżki Unity w Coddy. Lekcja 31 z 60.

challenge icon

Wyzwanie

Średni

Kolizja powinna zatrzymać bieg.

  1. Nad GameManager zadeklaruj public enum GameState { Playing, GameOver }; wewnątrz dodaj public GameState state = GameState.Playing;.
  2. public void GameOver() ustawia state na GameState.GameOver, a speed na 0, i wyświetla gameOverPanel.
  3. Runner wywołuje GameManager.Instance.GameOver() po uruchomieniu wyzwalacza oznaczonego tagiem Obstacle. GameManager, Runner i Spawner rozpoczynają Update() od instrukcji return, jeśli stan nie jest równy Playing.

Naciśnij „Graj” i doprowadź do kolizji: wszystko się zatrzyma. Następnie naciśnij „Sprawdź”.

Spróbuj swoich sił

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

Wszystkie lekcje w sekcji Tworzenie prawdziwych gier

Poćwicz samodzielnie: Edytor online Unity