Récapitulatif : base de données d’objets
Fait partie de la section Architecture de jeu dans Unity du Journey Unity de Coddy. Leçon 23 sur 50.
Défi
MoyenLa boutique du forgeron vend des articles provenant d’une base de données que toutes les boutiques du jeu partageront. Écrivez les deux types d’assets et le Shop :
ItemData(dans ItemData.cs) : un ScriptableObject avec une entrée de menu Create et les champs publicsitemName(une chaîne) etprice(un entier).ItemDatabase(dans ItemDatabase.cs) : un ScriptableObject avec une entrée de menu Create et un seul champ public,items, une liste de ItemData.Shoppossède un champ publicdatabasede type ItemDatabase.itemTextaffiche l’article sélectionné sous la formeIron Sword: 30 gold, en commençant par le premier article, etgoldTextaffiche l’or sous la formeGold: 50.- La flèche droite sélectionne l’article suivant, puis revient au premier après le dernier ; la flèche gauche fait l’inverse, du premier article au dernier.
- La barre d’espace achète l’article sélectionné. Si le joueur a déjà acheté un article, le message
Already owned: Iron Swordest consigné. Si un article coûte plus cher que la quantité d’or disponible, le messageNot enough gold for Iron Swordest consigné. Sinon, la quantité d’or diminue du prix, l’article est ajouté aux articles possédés, les textes sont mis à jour et la Console afficheBought Iron Sword. - Conservez dans Shop les articles achetés. Les assets restent tels quels : la base de données est partagée et, dans l’Éditeur, les modifications apportées à un asset persistent après le mode Play.
Le projet contient quatre assets ItemData (Iron Sword 30, Oak Shield 20, Healing Potion 10, Long Bow 45), un asset Database qui les répertorie dans cet ordre, et l’Inspecteur place le Database dans le champ database de Shop. Appuyez sur Play, faites vos achats, puis cliquez sur Check.
Essayez vous-même
using UnityEngine;
using UnityEngine.InputSystem;
using TMPro;
public class Shop : MonoBehaviour
{
public TMP_Text itemText;
public TMP_Text goldText;
public int gold = 50;
// Le champ de la base de données, la navigation avec les flèches et l’achat avec Space se trouvent ici
}
Toutes les leçons de Architecture de jeu dans Unity
1Des composants, pas des hiérarchies
Des composants simplesUn script de base pour les ennemisDes composants abstraitsDes composants qui fonctionnent ensembleRécapitulatif : tourelle modulaire4Données sérialisées
Classes sérialisablesListes dans l’inspecteurÉnumérations dans l’inspecteurRécapitulatif : table de butin7Machines à états
Les états sous forme de classesUne machine à étatsTransitionsLes cerveaux des ennemisRécapitulatif : états d’une porte10Projet : Survivant de l’arène
Le hérosTypes d’ennemis2Interfaces dans Unity
IDamageableInterfaces et TryGetComponentGetComponentsRécapitulatif : touche d’interaction5ScriptableObjects
Assets de donnéesStatistiques des armesParamètres partagésLes vagues sous forme de donnéesRécapitulatif : base de données d’objets