Repaso: comprar en la tienda
Parte de la sección Arquitectura de juegos en Unity del Journey de Unity de Coddy. Lección 29 de 64.
Este capítulo trasladó los datos a recursos que comparten muchos objetos. Los artículos de la tienda son ese tipo de recursos, así que lo que compra el jugador pertenece a Shop, nunca a ellos.
Desafío
FácilHaz que la barra espaciadora compre el objeto seleccionado sin modificar los recursos.
- Guarda los objetos comprados en
List<ItemData> owneden la tienda. - Al pulsar la barra espaciadora, si el objeto ya se tiene, registra
Already owned: Iron Sword; si cuesta más quegold, registraNot enough gold for Iron Sword. - De lo contrario, resta el precio de
gold, añádelo aowned, registraBought Iron Swordy actualiza los textos.
Pulsa «Jugar» y compra el arco largo. Después, pulsa «Comprobar».
Pruébalo tú mismo
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();
}
// Space: compra el objeto seleccionado
}
void Show()
{
ItemData item = database.items[index];
itemText.text = item.itemName + ": " + item.price + " gold";
goldText.text = "Gold: " + gold;
}
}
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
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 modularRepaso: cañón doble4Datos serializados
Clases serializablesListas en el InspectorEnumeraciones en el InspectorRepaso: tabla de botínRepaso: sortear el botín2Interfaces en Unity
IDamageableInterfaces y TryGetComponentGetComponentsRepaso: Tecla de interacciónRepaso: El más cercano al alcance5ScriptableObjects
Activos de datosEstadísticas de armasConfiguración compartidaGuardar el vientoOleadas como datosRepaso: base de datos de objetosRepaso: comprar en la tienda3Eventos
Eventos de C# en UnitySuscribirse en OnEnableCampos UnityEventLos eventos controlan la interfazRepaso: ventana emergente de logrosRepaso: temporizador de la ventana emergentePractica por tu cuenta: Playground de Unity