Menu
CoddyTech

Receitas de Criação

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

challenge icon

Desafio

Difícil

Adicione as receitas a CraftingBench.

  1. Adicione Ingredient serializável (item e amount públicos) e Recipe (result público e List<Ingredient> needs), além de um List<Recipe> recipes público.
  2. Em Start, recipeButtons[i] chama Craft(i).
  3. public void Craft(int index): quando todos os ingredientes necessários estiverem disponíveis, remova-os, adicione um resultado e registre Crafted Axe.
  4. Refresh deixa um botão clicável somente quando sua receita pode ser criada.

Pressione “Jogar” e crie uma jangada. Depois, “Verificar”.

Experimente você mesmo

using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using TMPro;

public class CraftingBench : MonoBehaviour
{
    [SerializeField] private Inventory inventory;
    [SerializeField] private Button[] recipeButtons;
    [SerializeField] private Button woodButton;
    [SerializeField] private Button stoneButton;
    [SerializeField] private TMP_Text inventoryText;

    void OnEnable()
    {
        inventory.Changed += Refresh;
    }

    void OnDisable()
    {
        inventory.Changed -= Refresh;
    }

    void Start()
    {
        woodButton.onClick.AddListener(() => inventory.Add("Wood", 1));
        stoneButton.onClick.AddListener(() => inventory.Add("Stone", 1));
        // Receitas: o botão da receita i cria a receita i
        Refresh();
    }

    void Refresh()
    {
        // Receitas: um botão de receita só pode ser clicado enquanto sua receita puder ser criada
        inventoryText.text = "Inventory: " + inventory.Describe();
    }
}

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

Pratique por conta própria: Playground de Unity