O Inventário dos Sonhos: Como Criar um Sistema Simples e Funcional na Unity (Guia para Novatos)

Sabe qual é a sensação? A de que você já dominou o movimento do personagem, o pulo, e até a câmera. Mas aí, a necessidade de um inventário bate na porta. E a sua mente trava.

“Como eu guardo os itens?”, “Eles vão sumir se eu fechar o jogo?”, “Como mostro na tela?”. De repente, o sonho de ter um RPG ou um jogo de sobrevivência vira um pesadelo de complexidade.

Se isso te soa familiar, relaxa. Você não é o único. A boa notícia é que um sistema de inventário, apesar de parecer um monstro, é na verdade uma sequência de passos simples e lógicos.

Neste post, vamos te mostrar como criar a base de um inventário. A gente vai focar em três pilares:

  1. A Classe Item: Como dar uma identidade para cada item do seu jogo.
  2. O Gerenciador de Inventário: Como guardar, adicionar e remover esses itens.
  3. A Interface: Como exibir tudo isso para o jogador.

E a gente vai fazer isso usando a ferramenta mais importante do seu kit de dev: a simplicidade.


Parte 1: A Identidade Secreta de Cada Item (A Classe Item)

Antes de guardar um item, você precisa definir o que ele é. Uma espada tem um nome, um ícone e talvez um dano. Uma poção tem um nome, um ícone e a quantidade de vida que recupera.

A forma mais organizada de fazer isso é criando uma class. Pense nela como a “carteira de identidade” do seu item.

Crie um novo script em C# (chame-o de Item) e cole o código abaixo.

using UnityEngine;

// [System.Serializable] permite que a classe seja visível no Inspector da Unity.
[System.Serializable]
public class Item
{
    public string itemName;
    public Sprite itemIcon;
    public int itemID;
    public int itemQuantity;
}
  • [System.Serializable]: Essa linha é mágica. Ela faz com que a sua classe Item apareça no Inspector da Unity, permitindo que você a configure facilmente em outros scripts.
  • itemName, itemIcon, etc.: Essas variáveis definem as propriedades básicas de qualquer item. Você pode adicionar mais, como itemDescription, itemWeight, etc. O importante é começar com o mínimo necessário.

Parte 2: O Guardião dos Itens (O Gerenciador de Inventário)

Agora que a gente tem a identidade dos itens, precisamos de um “guarda-volumes” para eles. Esse será o nosso gerenciador de inventário. Ele vai ser um script que a gente vai colocar no nosso personagem ou em um objeto vazio na cena (recomendado para organização).

Crie um novo script (chame-o de InventoryManager) e cole o código:

using UnityEngine;
using System.Collections.Generic; // Precisamos disso para usar a List

public class InventoryManager : MonoBehaviour
{
    public static InventoryManager instance; // Singleton para facilitar o acesso

    public List<Item> inventoryItems = new List<Item>();
    public int inventoryCapacity = 20; // Capacidade máxima do inventário

    void Awake()
    {
        // Garante que só há uma instância do gerenciador
        if (instance != null)
        {
            Debug.LogWarning("Mais de um InventoryManager na cena!");
            return;
        }
        instance = this;
    }

    public void AddItem(Item item)
    {
        // Verifica se ainda tem espaço no inventário
        if (inventoryItems.Count >= inventoryCapacity)
        {
            Debug.Log("Inventário cheio!");
            return;
        }

        // Adiciona o item na lista
        inventoryItems.Add(item);
        Debug.Log("Item " + item.itemName + " adicionado!");
    }

    public void RemoveItem(Item item)
    {
        // Remove o item da lista
        inventoryItems.Remove(item);
    }
}
  • List<Item>: É o nosso contêiner. A lista é perfeita porque ela cresce e diminui dinamicamente. Melhor que um Array para inventários, que tem um tamanho fixo.
  • AddItem e RemoveItem: São os métodos que você vai chamar de outros scripts para interagir com o inventário. Por exemplo, quando o jogador pega uma espada no chão, o seu script de Pickup vai chamar InventoryManager.instance.AddItem(espada).

O Próximo Passo

Você já tem a estrutura. A classe Item define o que é um objeto, e a InventoryManager cuida de guardar e gerenciar esses objetos. Esse é o coração do seu sistema.

O que falta? O visual!

No nosso próximo post, vamos mergulhar na interface do usuário (UI) da Unity. A gente vai te mostrar como usar o que aprendemos aqui para exibir os itens na tela, usando um simples for loop para preencher os “slots” do inventário.

Compartilhe !