מתכוני יצירה
חלק מהיחידה ארכיטקטורת משחקים ב-Unity במסלול ה-Unity של Coddy. שיעור 63 מתוך 64.
אתגר
קשההעניקו ל־CraftingBench את המתכונים שלו.
- הוסיפו את
Ingredientשניתן לסריאליזציה (itemו־amountציבוריים) ואתRecipe(resultציבורי ו־List<Ingredient> needs), וכןList<Recipe> recipesציבורי. - ב־
Start,recipeButtons[i]קורא ל־Craft(i). public void Craft(int index): אם כל המרכיבים הנדרשים נמצאים ברשותכם, הסירו אותם, הוסיפו פריט אחד מהתוצאה, ורשמו ביומןCrafted Axe.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
1רכיבים, לא היררכיות
רכיבים קטניםסקריפט בסיסי לאויברכיבים מופשטיםרכיבים שפועלים יחדחזרה: צריח מודולריחזרה: תותח כפול4נתונים שעברו סריאליזציה
מחלקות שניתנות לסריאליזציהרשימות ב־Inspectorטיפוסי Enum ב־Inspectorחזרה: טבלת שללהגרלת השלל2ממשקים ב-Unity
IDamageableממשקים ו-TryGetComponentGetComponentsסיכום: מקש אינטראקציהסיכום: הקרוב ביותר בטווחתרגלו בעצמכם: Unity אונליין