Menu
CoddyTech

Recettes de fabrication

Fait partie de la section Architecture de jeu dans Unity du Journey Unity de Coddy. Leçon 63 sur 64.

challenge icon

Défi

Difficile

Ajoute ses recettes à CraftingBench.

  1. Ajoute Ingredient sérialisable (public item, amount) et Recipe (public result, List<Ingredient> needs), ainsi qu’un List<Recipe> recipes public.
  2. Dans Start, recipeButtons[i] appelle Craft(i).
  3. public void Craft(int index) : si tous les ingrédients requis sont présents, retire-les, ajoute un exemplaire du résultat et consigne Crafted Axe.
  4. Refresh ne rend un bouton cliquable que si sa recette peut être fabriquée.

Appuie sur « Jouer » et fabrique un radeau. Ensuite, appuie sur « Vérifier ».

Essayez vous-même

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));
        // Recettes : le bouton de la recette i permet de fabriquer la recette i
        Refresh();
    }

    void Refresh()
    {
        // Recettes : un bouton de recette n’est cliquable que lorsque sa recette peut être fabriquée
        inventoryText.text = "Inventory: " + inventory.Describe();
    }
}

Toutes les leçons de Architecture de jeu dans Unity

Entraînez-vous par vous-même : Playground Unity