Rückblick: Im Shop einkaufen
Teil des Abschnitts Spielarchitektur in Unity der Unity-Journey von Coddy. Lektion 29 von 64.
In diesem Kapitel wurden Daten in Assets verschoben, die viele Objekte gemeinsam nutzen. Die Gegenstände des Shops sind solche Assets, daher gehört das, was der Spieler kauft, in den Shop und niemals in die Gegenstände selbst.
Aufgabe
EinfachLass die Leertaste den ausgewählten Gegenstand kaufen, ohne die Assets zu verändern.
- Speichere die gekauften Gegenstände im Shop in
List<ItemData> owned. - Wenn du die Leertaste drückst, wird bei einem bereits besessenen Gegenstand
Already owned: Iron Swordprotokolliert; kostet ein Gegenstand mehr alsgold, wirdNot enough gold for Iron Swordprotokolliert. - Ziehe andernfalls den Preis von
goldab, füge den Gegenstand zuownedhinzu, protokolliereBought Iron Swordund aktualisiere die Texte.
Drücke „Spielen“ und kaufe den Long Bow. Drücke dann „Prüfen“.
Probier es selbst
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.InputSystem;
using TMPro;
public class Shop : MonoBehaviour
{
public ItemDatabase database;
public TMP_Text itemText;
public TMP_Text goldText;
public int gold = 50;
private int index;
void Start()
{
Show();
}
void Update()
{
if (Keyboard.current.rightArrowKey.wasPressedThisFrame)
{
index = (index + 1) % database.items.Count;
Show();
}
if (Keyboard.current.leftArrowKey.wasPressedThisFrame)
{
index = (index - 1 + database.items.Count) % database.items.Count;
Show();
}
// Leertaste: den ausgewählten Gegenstand kaufen
}
void Show()
{
ItemData item = database.items[index];
itemText.text = item.itemName + ": " + item.price + " gold";
goldText.text = "Gold: " + gold;
}
}
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Spielarchitektur in Unity
1Komponenten statt Hierarchien
Kleine KomponentenEin Basis-GegnerskriptAbstrakte KomponentenZusammenwirkende KomponentenRückblick: Modulares GeschützRückblick: Zwillingskanone4Serialisierte Daten
Serialisierbare KlassenListen im InspectorEnums im InspectorRückblick: Loot-TabelleRückblick: Beute auswürfeln2Schnittstellen in Unity
IDamageableSchnittstellen und TryGetComponentGetComponentsZusammenfassung: InteraktionstasteZusammenfassung: Nächstes in Reichweite5ScriptableObjects
Daten-AssetsWaffenwerteGemeinsame EinstellungenDen Wind speichernWellen als DatenRückblick: Item-DatenbankRückblick: Im Shop einkaufen8Wiederverwendbarer Code
ErweiterungsmethodenEin generisches SingletonGenerische HilfsmethodenRückblick: FindNearestÜbe selbstständig: Unity-Playground