Menu
CoddyTech

Noch einmal laufen

Teil des Abschnitts Echte Spiele entwickeln der Unity-Journey von Coddy. Lektion 32 von 60.

challenge icon

Aufgabe

Mittel

Lass die Schaltfläche „Erneut ausführen“ einen neuen Lauf starten.

  1. Schreibe in GameManager void Restart(), das die Szene neu lädt: SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);.
  2. Füge void Start() mit restartButton.onClick.AddListener(Restart); hinzu.

Drücke auf „Spielen“, baue einen Unfall und klicke auf „Erneut ausführen“: Ein neuer Lauf beginnt. Drücke dann auf „Prüfen“.

Probier es selbst

using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
using TMPro;

public enum GameState { Playing, GameOver }

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;
    public GameState state = GameState.Playing;
    private float distance;

    void Awake()
    {
        Instance = this;
    }

    void Update()
    {
        if (state != GameState.Playing) return;

        speed = Mathf.Min(speed + speedUp * Time.deltaTime, maxSpeed);
        distance += speed * Time.deltaTime;
        distanceText.text = "Distance: " + Mathf.FloorToInt(distance) + " m";
    }

    public void GameOver()
    {
        state = GameState.GameOver;
        speed = 0f;
        gameOverPanel.SetActive(true);
    }
}

Alle Lektionen in Echte Spiele entwickeln

Übe selbstständig: Unity-Playground