Bester Lauf
Teil des Abschnitts Echte Spiele entwickeln der Unity-Journey von Coddy. Lektion 33 von 60.
Der letzte Schritt des Endless Runners: Der beste Lauf wird in PlayerPrefs gespeichert, so wie es beim Highscore war, damit er einen erneuten Lauf und das Beenden des Spiels übersteht.
Aufgabe
MittelSpeichere den besten Lauf unter dem Schlüssel BestRun.
- Füge
private int best;hinzu. Lade ihn inStart()mitPlayerPrefs.GetInt("BestRun", 0)und zeige"Best: " + best + " m"inbestTextan. - Speichere ihn am Ende von
GameOver(), wennMathf.FloorToInt(distance)bestübertrifft, zeige ihn an und rufenewBestText.SetActive(true);auf.
Drücke „Spielen“, stelle einen Bestwert auf und übertriff ihn: „Neuer Bestwert!“ wird angezeigt. Drücke dann „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;
public TMP_Text bestText;
public GameObject newBestText;
private float distance;
void Awake()
{
Instance = this;
}
void Start()
{
restartButton.onClick.AddListener(Restart);
}
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);
}
void Restart()
{
SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
}
}
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
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 BankÜbe selbstständig: Unity-Playground