Menu
CoddyTech

Rückblick: Speicherplätze

Teil des Abschnitts Spielarchitektur in Unity der Unity-Journey von Coddy. Lektion 27 von 50.

challenge icon

Aufgabe

Mittel

Ein 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 Feldern day und gold. 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 slotTexts zeigen jeden Speicherplatz als Slot 2: Day 4, 65 gold oder Slot 2: empty an. 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