Menu
CoddyTech

Zderzenie i restart

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

challenge icon

Wyzwanie

Średni

Kolizja kończy bieg, a przycisk rozpoczyna następny. Zachowaj wszystko z wcześniejszych lekcji. Na kanwie znajduje się ukryty GameOverPanel z RestartButton z etykietą Uruchom ponownie, a scena wypełnia dwa nowe pola w GameManager: gameOverPanel i restartButton. Runner ma kinematyczny Rigidbody, więc otrzymuje komunikaty o wyzwalaczach od przeszkód.

W GameManager:

  • Nad klasą zadeklaruj public enum GameState { Playing, GameOver } i dodaj do klasy pole public GameState state, którego początkową wartością jest Playing.
  • Dodaj using UnityEngine.UI;, using UnityEngine.SceneManagement;, public GameObject gameOverPanel; i public Button restartButton;.
  • Publiczna metoda GameOver() ustawia state na GameOver, ustawia speed na 0, co zatrzymuje wszystkie przeszkody, i wyświetla panel.
  • Update() nic nie robi, jeśli stan nie jest równy Playing, więc prędkość i dystans przestają się zmieniać.
  • W Start() ustaw restartButton tak, by ponownie ładował uruchomioną scenę.

W Runner: gdy obiekt wchodzi w wyzwalacz oznaczony tagiem Obstacle, wywołaj GameManager.Instance.GameOver(). Gdy stan nie jest równy Playing, strzałki nic nie robią.

W Spawner: nie twórz żadnych obiektów, gdy stan nie jest równy Playing.

Naciśnij Play, zderz się z przeszkodą i uruchom grę ponownie, a następnie naciśnij Check.

Spróbuj swoich sił

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

Wszystkie lekcje w sekcji Tworzenie prawdziwych gier