Menu
CoddyTech

Revisão: Comprar na Loja

Parte da seção Arquitetura de Jogos no Unity do Journey de Unity da Coddy. Lição 29 de 64.

Este capítulo moveu os dados para recursos compartilhados por muitos objetos. Os itens da loja são esses recursos, então aquilo que o jogador compra pertence à Shop, nunca aos itens.

challenge icon

Desafio

Fácil

Faça com que a tecla Espaço compre o item selecionado, sem alterar os assets.

  1. Mantenha os itens comprados em List<ItemData> owned na loja.
  2. Ao pressionar Espaço, se o item já tiver sido comprado, registre Already owned: Iron Sword; se custar mais que gold, registre Not enough gold for Iron Sword.
  3. Caso contrário, subtraia o preço de gold, adicione o item a owned, registre Bought Iron Sword e atualize os textos.

Pressione “Jogar” e compre o Long Bow. Depois, clique em “Verificar”.

Experimente você mesmo

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: comprar o item selecionado
    }

    void Show()
    {
        ItemData item = database.items[index];
        itemText.text = item.itemName + ": " + item.price + " gold";
        goldText.text = "Gold: " + gold;
    }
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Arquitetura de Jogos no Unity

Pratique por conta própria: Playground de Unity