Menu
CoddyTech

Przepisy rzemieślnicze

Część sekcji Architektura gier w Unity ścieżki Unity w Coddy. Lekcja 63 z 64.

challenge icon

Wyzwanie

Trudny

Dodaj przepisy do CraftingBench.

  1. Dodaj serializowalne Ingredient (publiczne item, amount) i Recipe (publiczne result, List<Ingredient> needs) oraz publiczne List<Recipe> recipes.
  2. W Start recipeButtons[i] wywołuje Craft(i).
  3. public void Craft(int index): jeśli masz wszystkie potrzebne składniki, usuń je, dodaj jeden wynik i zapisz w logu Crafted Axe.
  4. Refresh sprawia, że przycisk jest aktywny tylko wtedy, gdy można wytworzyć jego przepis.

Naciśnij „Graj” i wytwórz tratwę. Następnie naciśnij „Sprawdź”.

Spróbuj swoich sił

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));
        // Przepisy: przycisk przepisu i wytwarza przedmiot według przepisu i
        Refresh();
    }

    void Refresh()
    {
        // Przepisy: przycisk przepisu można kliknąć tylko wtedy, gdy można wytworzyć przedmiot według tego przepisu
        inventoryText.text = "Inventory: " + inventory.Describe();
    }
}

Wszystkie lekcje w sekcji Architektura gier w Unity

Poćwicz samodzielnie: Edytor online Unity