Menu
CoddyTech

Bancada de Criação

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

Em um jogo de sobrevivência, uma bancada de criação transforma o que você coleta em coisas que pode usar. Dois botões coletam madeira e pedra, e três receitas transformam esses materiais em mais coisas: duas madeiras fazem uma tábua, uma tábua e duas pedras fazem um machado, quatro tábuas fazem uma jangada. O botão de uma receita só pode ser pressionado enquanto o inventário tiver tudo de que a receita precisa, e a criação consome esses materiais. As receitas são dados preenchidos na bancada pelo Inspector, então uma nova receita não precisa de código novo. O inventário anuncia cada alteração para quem estiver ouvindo, e é salvo como JSON sempre que muda, então sair do jogo não faz você perder nada.

Duas lições constroem esse sistema. Nesta, você escreve o Inventory, no Backpack; as receitas da bancada vêm a seguir.

challenge icon

Desafio

Difícil

Parte 1: preencha o Inventory; a coleta está pronta.

  1. Adicione ItemStack serializável (item e count públicos) e InventoryData (List<ItemStack> stacks público).
  2. Preencha Count, Add, Remove (uma pilha sai ao chegar a 0) e Describe: Wood 3, Plank 1 ou empty.
  3. Cada alteração salva inventory.json em Application.persistentDataPath e aciona Changed; Awake carrega os dados.

Pressione “Jogar”, colete e jogue novamente: a madeira estará de volta. Depois, pressione “Verificar”.

Experimente você mesmo

using System;
using System.Collections.Generic;
using System.IO;
using UnityEngine;

// ItemStack e InventoryData vão aqui

public class Inventory : MonoBehaviour
{
    public event Action Changed;

    void Awake()
    {
        // Carregue inventory.json se ele existir
    }

    public int Count(string item)
    {
        return 0;
    }

    public void Add(string item, int amount)
    {
    }

    public void Remove(string item, int amount)
    {
    }

    public string Describe()
    {
        return "empty";
    }
}

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

Pratique por conta própria: Playground de Unity