Riepilogo: database degli oggetti
Fa parte della sezione Architettura dei giochi in Unity del percorso Unity di Coddy. Lezione 23 di 50.
Sfida
MedioLa 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 pubbliciitemName(una stringa) eprice(un int).ItemDatabase(in ItemDatabase.cs): uno ScriptableObject con una voce nel menu Create e un campo pubblico,items, una lista di ItemData.Shopha un campo pubblicodatabasedi tipo ItemDatabase.itemTextmostra l'articolo selezionato comeIron Sword: 30 gold, iniziando dal primo articolo, egoldTextmostra l'oro comeGold: 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 registratoNot 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 compareBought 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
1Componenti, non gerarchie
Componenti piccoliUno script base per i nemiciComponenti astrattiComponenti che collaboranoRiepilogo: torretta modulare4Dati serializzati
Classi serializzabiliListe nell'InspectorEnum nell'InspectorRiepilogo: tabella del bottino7Macchine a stati
Gli stati come classiUna macchina a statiTransizioniIntelligenze dei nemiciRiepilogo: stati della porta10Progetto: Sopravvissuto nell’arena
L’eroeTipi di nemici5ScriptableObjects
Asset di datiStatistiche delle armiImpostazioni condiviseOndate come datiRiepilogo: database degli oggetti