Noch einmal laufen
Teil des Abschnitts Echte Spiele entwickeln der Unity-Journey von Coddy. Lektion 32 von 60.
Aufgabe
MittelLass die Schaltfläche „Erneut ausführen“ einen neuen Lauf starten.
- Schreibe in
GameManagervoid Restart(), das die Szene neu lädt:SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);. - Füge
void Start()mitrestartButton.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
1Text auf dem Bildschirm
Canvas und TextPunktestand anzeigenZahlen formatierenEin Countdown-TimerRückblick: Tachometer2Buttons und Bildschirme
Buttons und onClickLambdasVerknüpfungen im InspectorPanels ein- und ausblendenGesundheitsbalkenRückblick: Upgrade-Shop5Speichern mit PlayerPrefs
Eine Zahl speichernMit einem Standardwert ladenHöchstpunktzahlEinstellungen speichernRückblick: Münzen auf der Bank3Der Spielmanager
Ein Skript steuert das SpielDas SingletonSpielzuständeZum Zustand wechselnRückblick: Rundenmanager6Projekt: Endlosläufer
Drei SpurenHindernisse vorausÜbe selbstständig: Unity-Playground