Repaso: base de datos de objetos
Parte de la sección Arquitectura de juegos en Unity del Journey de Unity de Coddy. Lección 23 de 50.
Desafío
IntermedioLa tienda del herrero vende a partir de una base de datos de objetos que compartirán todas las tiendas del juego. Escribe los dos tipos de recursos y la Shop:
ItemData(en ItemData.cs): un ScriptableObject con una entrada en el menú Create y los campos públicositemName(un string) yprice(un int).ItemDatabase(en ItemDatabase.cs): un ScriptableObject con una entrada en el menú Create y un campo público,items, una lista de ItemData.Shoptiene un campo públicodatabasede tipo ItemDatabase.itemTextmuestra el objeto seleccionado comoIron Sword: 30 gold, empezando por el primer objeto, ygoldTextmuestra el oro comoGold: 50.- La flecha derecha selecciona el siguiente objeto y, después del último, vuelve al primero; la flecha izquierda va en sentido contrario, del primer objeto al último.
- La barra espaciadora compra el objeto seleccionado. Si el jugador ya compró un objeto, se registra
Already owned: Iron Sword. Si un objeto cuesta más que el oro disponible, se registraNot enough gold for Iron Sword. De lo contrario, el oro disminuye según el precio, el objeto pasa a ser propiedad del jugador, los textos se actualizan y la consola muestraBought Iron Sword. - Guarda en Shop lo que se haya comprado. Los recursos permanecen tal como están: la base de datos es compartida y, en el Editor, los cambios realizados en un recurso sobreviven al modo Play.
El proyecto tiene cuatro recursos ItemData (Iron Sword 30, Oak Shield 20, Healing Potion 10, Long Bow 45), un recurso Database que los enumera en ese orden y el Inspector coloca Database en el campo database de Shop. Pulsa Play, ve de compras y luego pulsa Check.
Pruébalo tú mismo
using UnityEngine;
using UnityEngine.InputSystem;
using TMPro;
public class Shop : MonoBehaviour
{
public TMP_Text itemText;
public TMP_Text goldText;
public int gold = 50;
// El campo de la base de datos, la navegación con las flechas y la compra con Space van aquí
}
Todas las lecciones de Arquitectura de juegos en Unity
1Componentes, no jerarquías
Componentes pequeñosUn script base para enemigosComponentes abstractosComponentes que trabajan juntosRepaso: torreta modular4Datos serializados
Clases serializablesListas en el InspectorEnumeraciones en el InspectorRepaso: tabla de botín7Máquinas de estados
Estados como clasesUna máquina de estadosTransicionesCerebros de enemigosRepaso: estados de puertas10Proyecto: Superviviente de la arena
El héroeTipos de enemigos2Interfaces en Unity
IDamageableInterfaces y TryGetComponentGetComponentsRepaso: tecla de interacción5ScriptableObjects
Recursos de datosEstadísticas de armasConfiguración compartidaOleadas como datosRepaso: base de datos de objetos