Rückblick: Speicherplätze
Teil des Abschnitts Spielarchitektur in Unity der Unity-Journey von Coddy. Lektion 27 von 50.
Aufgabe
MittelEin Landwirtschaftsspiel hat drei Speicherplätze, jeweils in einer eigenen Datei: slot1.json, slot2.json und slot3.json in Application.persistentDataPath. Schreibe SlotSave und das SlotMenu:
SlotSave(in SlotSave.cs) ist eine[System.Serializable]-Klasse mit den öffentlichen Felderndayundgold. Eine neue Farm beginnt an Tag 1 mit 20 Gold, und bei einem Spielstand aus einer älteren Version, in dem ein Wert fehlt, wird derselbe Startwert verwendet.- Beim Start des Spiels lädt das Menü jeden Speicherplatz, für den eine Datei existiert. Speicherplatz 1 ist ausgewählt; mit dem Abwärtspfeil wird der nächste Speicherplatz ausgewählt, mit dem Aufwärtspfeil der vorherige, wobei die Auswahl bei Speicherplatz 3 beziehungsweise Speicherplatz 1 endet.
- Die drei
slotTextszeigen jeden Speicherplatz alsSlot 2: Day 4, 65 goldoderSlot 2: emptyan. Die Zeile des ausgewählten Speicherplatzes beginnt mit>, also beispielsweise> Slot 1: empty. - Mit der Leertaste wird auf einem leeren Speicherplatz dort eine neue Farm gestartet. Auf einem belegten Speicherplatz wird mit der Leertaste ein Tag gespielt: Der Tag erhöht sich um 1 und das Gold um 15. In beiden Fällen wird der Speicherplatz in seiner Datei gespeichert.
- Die Schaltfläche Delete ruft
DeleteSelected()auf, wodurch die Datei des ausgewählten Speicherplatzes gelöscht und der Speicherplatz geleert wird.
Klicke auf Play, starte eine oder zwei Farmen und spiele ein paar Tage, dann klicke auf Stop und erneut auf Play. Klicke anschließend auf Check.
Probier es selbst
using System.IO;
using UnityEngine;
using UnityEngine.InputSystem;
using TMPro;
public class SlotMenu : MonoBehaviour
{
public TMP_Text[] slotTexts;
// Die Schaltfläche Delete ruft dies auf
public void DeleteSelected()
{
}
}
Alle Lektionen in Spielarchitektur in Unity
1Komponenten statt Hierarchien
Kleine KomponentenEin Basisskript für GegnerAbstrakte KomponentenKomponenten im ZusammenspielRückblick: Modularer Geschützturm4Serialisierte Daten
Serialisierbare KlassenListen im InspectorEnums im InspectorRückblick: Loot-Tabelle7Zustandsautomaten
Zustände als KlassenEin ZustandsautomatÜbergängeGegner-KIWiederholung: Türzustände10Projekt: Arena-Überlebenskampf
Der HeldGegnertypen2Interfaces in Unity
IDamageableInterfaces und TryGetComponentGetComponentsRückblick: Interaktionstaste5ScriptableObjects
Daten-AssetsWaffenwerteGemeinsame EinstellungenWellen als DatenRückblick: Item-Datenbank8Wiederverwendbarer Code
ErweiterungsmethodenEin generisches SingletonGenerische HilfsmethodenRückblick: FindNearest