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.
Desafio
DifícilParte 1: preencha o Inventory; a coleta está pronta.
- Adicione
ItemStackserializável (itemecountpúblicos) eInventoryData(List<ItemStack> stackspúblico). - Preencha
Count,Add,Remove(uma pilha sai ao chegar a 0) eDescribe:Wood 3, Plank 1ouempty. - Cada alteração salva
inventory.jsonemApplication.persistentDataPathe acionaChanged;Awakecarrega 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
1Componentes, não hierarquias
Componentes pequenosUm script base de inimigoComponentes abstratosComponentes trabalhando juntosRevisão: torre modularRevisão: canhão duplo4Dados Serializados
Classes SerializáveisListas no InspectorEnums no InspectorRevisão: Tabela de LootRevisão: Sorteie o Loot2Interfaces no Unity
IDamageableInterfaces e TryGetComponentGetComponentsRevisão: tecla de interaçãoRevisão: mais próximo ao alcance5ScriptableObjects
Ativos de DadosAtributos da ArmaConfigurações CompartilhadasSalve o VentoOndas como DadosRevisão: Banco de ItensRevisão: Comprar na LojaPratique por conta própria: Playground de Unity