Menu
CoddyTech

Riepilogo: database degli oggetti

Fa parte della sezione Architettura dei giochi in Unity del percorso Unity di Coddy. Lezione 23 di 50.

challenge icon

Sfida

Medio

La bottega del fabbro vende articoli da un database che sarà condiviso da tutti i negozi del gioco. Scrivi i due tipi di asset e Shop:

  • ItemData (in ItemData.cs): uno ScriptableObject con una voce nel menu Create e i campi pubblici itemName (una stringa) e price (un int).
  • ItemDatabase (in ItemDatabase.cs): uno ScriptableObject con una voce nel menu Create e un campo pubblico, items, una lista di ItemData.
  • Shop ha un campo pubblico database di tipo ItemDatabase. itemText mostra l'articolo selezionato come Iron Sword: 30 gold, iniziando dal primo articolo, e goldText mostra l'oro come Gold: 50.
  • La freccia destra seleziona l'articolo successivo e, dopo l'ultimo, di nuovo il primo; la freccia sinistra procede nella direzione opposta, dal primo articolo all'ultimo.
  • La barra spaziatrice acquista l'articolo selezionato. Se il giocatore ha già acquistato un articolo, viene registrato Already owned: Iron Sword. Se un articolo costa più dell'oro disponibile, viene registrato Not enough gold for Iron Sword. Altrimenti, la quantità di oro diminuisce in base al prezzo, l'articolo diventa di proprietà del giocatore, i testi si aggiornano e nella Console compare Bought Iron Sword.
  • Conserva nel negozio ciò che è stato acquistato. Gli asset restano invariati: il database è condiviso e, nell'Editor, una modifica a un asset persiste anche dopo la modalità Play.

Il progetto contiene quattro asset ItemData (Iron Sword 30, Oak Shield 20, Healing Potion 10, Long Bow 45), un asset Database che li elenca in quest'ordine e il Database è assegnato nel campo database di Shop nell'Inspector. Premi Play, fai acquisti, poi Check.

Provalo tu

using UnityEngine;
using UnityEngine.InputSystem;
using TMPro;

public class Shop : MonoBehaviour
{
    public TMP_Text itemText;
    public TMP_Text goldText;
    public int gold = 50;

    // Il campo del database, la navigazione con le frecce e l'acquisto con Space vanno qui
}

Tutte le lezioni di Architettura dei giochi in Unity