Menu
CoddyTech

Üretim Tarifleri

Coddy'nin Unity Journey'sinin Unity'de Oyun Mimarisi bölümünün bir parçası. Ders 63 / 64.

challenge icon

Görev

Zor

CraftingBench sınıfına tariflerini ekle.

  1. Serileştirilebilir Ingredient (item ve amount alanları public) ve Recipe (result alanı public, List<Ingredient> needs) sınıflarını ve public List<Recipe> recipes listesini ekle.
  2. Start içinde recipeButtons[i], Craft(i) metodunu çağırır.
  3. public void Craft(int index): gerekli tüm malzemeler varsa bunları kaldır, bir sonuç ürünü ekle ve Crafted Axe metnini günlüğe yaz.
  4. Refresh, bir düğmeyi yalnızca tarifi üretilebildiğinde tıklanabilir yapar.

“Oyna” düğmesine bas ve bir sal üret. Ardından “Kontrol et” düğmesine bas.

Kendin dene

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));
        // Tarifler: i tarif düğmesi, i tarifini üretir
        Refresh();
    }

    void Refresh()
    {
        // Tarifler: Bir tarif düğmesine yalnızca ilgili tarif üretilebildiğinde tıklanabilir
        inventoryText.text = "Inventory: " + inventory.Describe();
    }
}

Unity'de Oyun Mimarisi bölümündeki tüm dersler

Kendi başına pratik yap: Unity playground