Rückblick: Levelauswahl
Teil des Abschnitts Echte Spiele entwickeln der Unity-Journey von Coddy. Lektion 21 von 56.
Aufgabe
EinfachEin Level-Auswahlbildschirm. Der Build listet Menu (Index 0), Level1, Level2 und Level3 auf. Das Menu hat drei Schaltflächen, die der Inspector in levelButtons des Skripts LevelSelect einträgt, sowie ein Progress-Objekt. In jedem Level führen die Pfeiltasten den Player zu einem goldenen Goal, dessen Skript (bereits vorhanden) Progress.Instance.LevelDone(level) mit dem Build-Index des Levels aufruft.
Progress.cs:
- Der Fortschritt bleibt während des gesamten Spiels erhalten, und es gibt immer nur ein einziges Objekt, auf das über
Progress.Instancezugegriffen wird, obwohl das Menu bei jedem Laden ein neues erstellt. unlockedist das höchste Level, das der Spieler spielen darf (zu Beginn 1).LevelDone(int level)schaltet das nächste Level frei, sperrt niemals ein bereits freigeschaltetes Level und kehrt zum Menu zurück.
LevelSelect.cs: Füge in Start jeder Schaltfläche einen Listener hinzu, der ihr eigenes Level lädt (die erste Schaltfläche lädt Level1 und so weiter), und mache eine Schaltfläche nur dann anklickbar, wenn ihr Level freigeschaltet ist.
Drücke Play, spiele die Level der Reihe nach und spiele Level 1 erneut. Drücke dann Check.
Probier es selbst
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
public class LevelSelect : MonoBehaviour
{
public Button[] levelButtons;
void Start()
{
// Jeder Button öffnet sein Level; gesperrte Level können nicht angeklickt werden
}
}
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