Menu
CoddyTech

Ricette di creazione

Fa parte della sezione Architettura dei giochi in Unity del percorso Unity di Coddy. Lezione 63 di 64.

challenge icon

Sfida

Difficile

Assegna le ricette a CraftingBench.

  1. Aggiungi Ingredient serializzabile (con item e amount pubblici) e Recipe (con result e List<Ingredient> needs pubblici), oltre a un List<Recipe> recipes pubblico.
  2. In Start, recipeButtons[i] chiama Craft(i).
  3. public void Craft(int index): se hai tutti gli ingredienti necessari, rimuovili, aggiungi un risultato e registra Crafted Axe.
  4. Refresh rende un pulsante cliccabile solo quando è possibile creare la ricetta corrispondente.

Premi «Gioca» e crea una zattera. Poi premi «Verifica».

Provalo tu

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));
        // Ricette: il pulsante della ricetta i crea la ricetta i
        Refresh();
    }

    void Refresh()
    {
        // Ricette: un pulsante di una ricetta è cliccabile solo quando la relativa ricetta può essere creata
        inventoryText.text = "Inventory: " + inventory.Describe();
    }
}

Tutte le lezioni di Architettura dei giochi in Unity

Esercitati da solo: Playground Unity