Menu
CoddyTech

מתכוני יצירה

חלק מהיחידה ארכיטקטורת משחקים ב-Unity במסלול ה-Unity של Coddy. שיעור 63 מתוך 64.

challenge icon

אתגר

קשה

העניקו ל־CraftingBench את המתכונים שלו.

  1. הוסיפו את Ingredient שניתן לסריאליזציה (item ו־amount ציבוריים) ואת Recipe (result ציבורי ו־List<Ingredient> needs), וכן List<Recipe> recipes ציבורי.
  2. ב־Start, recipeButtons[i] קורא ל־Craft(i).
  3. public void Craft(int index): אם כל המרכיבים הנדרשים נמצאים ברשותכם, הסירו אותם, הוסיפו פריט אחד מהתוצאה, ורשמו ביומן Crafted Axe.
  4. Refresh הופכת כפתור ללחיץ רק כאשר אפשר ליצור את המתכון שלו.

לחצו על „שחק” וצרו רפסודה. לאחר מכן לחצו על „בדיקה”.

נסו בעצמכם

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));
        // מתכונים: כפתור המתכון i יוצר את המתכון i
        Refresh();
    }

    void Refresh()
    {
        // מתכונים: אפשר ללחוץ על כפתור מתכון רק כשאפשר ליצור את המתכון שלו
        inventoryText.text = "Inventory: " + inventory.Describe();
    }
}

כל השיעורים ביחידה ארכיטקטורת משחקים ב-Unity

תרגלו בעצמכם: Unity אונליין