Bestzeit
Teil des Abschnitts Echte Spiele entwickeln der Unity-Journey von Coddy. Lektion 53 von 56.
Aufgabe
MittelLetzter Schritt: Jedes Level merkt sich deine Bestzeit. Behalte alles aus den vorherigen Lektionen bei. Das HUD jedes Levels hat oben rechts ein BestText, und die Szene weist es dem neuen Feld bestText von FinishLine zu.
In FinishLine (using TMPro; hinzufügen):
- Ein
TMP_Text-FeldbestText, das der Inspector festlegt, und die Laufzeit: einfloat, der sich in jedem Frame umTime.deltaTimeerhöht. - Jedes Level speichert seine Bestzeit unter einem eigenen PlayerPrefs-Schlüssel:
BestTime_und dem Namen des Levels, zum BeispielBestTime_Level1. - Zeige in
Startdie gespeicherte Bestzeit des Levels mit einer Dezimalstelle an, alsBest: 12.4 s, oderBest: none, wenn es noch keine gibt. - Wenn der Spieler die Ziellinie überquert, speichere vor dem Laden des nächsten Levels die Laufzeit, falls das Level noch keine Bestzeit hat oder der Lauf diese unterbietet. Ein langsamerer Lauf lässt die Bestzeit unverändert.
Drücke Play und stelle eine Zeit auf, versuche dann, sie zu unterbieten, und klicke anschließend auf Check.
Probier es selbst
using UnityEngine;
using UnityEngine.SceneManagement;
public class FinishLine : MonoBehaviour
{
void OnTriggerEnter(Collider other)
{
if (other.GetComponent<Player>() == null) return;
Scene level = SceneManager.GetActiveScene();
Debug.Log(level.name + " complete!");
int next = level.buildIndex + 1;
if (next >= SceneManager.sceneCountInBuildSettings)
{
next = 0;
}
SceneManager.LoadScene(next);
}
}
Alle Lektionen in Echte Spiele entwickeln
1Text auf dem Bildschirm
Canvas und TextPunktestand anzeigenZahlen formatierenEin Countdown-TimerRückblick: Tachometer4Szenen und Level
Eine Szene ladenDas Level neu startenNächstes LevelZwischen Szenen beibehaltenRückblick: Levelauswahl10Projekt: 3D-Plattformer
Der ParcoursBewegliche Plattformen2Buttons 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