وصفات التصنيع
جزء من قسم هندسة الألعاب في 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التعدادات في Inspectorمراجعة: جدول الغنائممراجعة: اختيار الغنائم عشوائيًا2الواجهات في Unity
IDamageableالواجهات وTryGetComponentGetComponentsمراجعة: مفتاح التفاعلمراجعة: أقرب عنصر ضمن النطاقتدرّب بنفسك: Playground لـ Unity