Üretim Tarifleri
Coddy'nin Unity Journey'sinin Unity'de Oyun Mimarisi bölümünün bir parçası. Ders 63 / 64.
Görev
ZorCraftingBench sınıfına tariflerini ekle.
- Serileştirilebilir
Ingredient(itemveamountalanları public) veRecipe(resultalanı public,List<Ingredient> needs) sınıflarını ve publicList<Recipe> recipeslistesini ekle. StartiçinderecipeButtons[i],Craft(i)metodunu çağırır.public void Craft(int index): gerekli tüm malzemeler varsa bunları kaldır, bir sonuç ürünü ekle veCrafted Axemetnini günlüğe yaz.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
1Kalıtım Değil, Bileşenler
Küçük BileşenlerTemel Düşman Script'iSoyut BileşenlerBirlikte Çalışan BileşenlerTekrar: Modüler TaretTekrar: Çift Namlulu Top4Serileştirilmiş Veriler
Serileştirilebilir SınıflarInspector'da ListelerInspector'da Enum'larTekrar: Ganimet TablosuTekrar: Ganimeti At2Unity'de Arayüzler
IDamageableArayüzler ve TryGetComponentGetComponentsÖzet: Etkileşim TuşuÖzet: Erişim Mesafesindeki En Yakın5ScriptableObjects
Veri VarlıklarıSilah İstatistikleriOrtak AyarlarRüzgârı KaydetVeri Olarak DalgalarTekrar: Eşya VeritabanıTekrar: Dükkândan Satın Al8Yeniden Kullanılabilir Kod
Genişletme MetotlarıGeneric SingletonGeneric YardımcılarTekrar: FindNearestKendi başına pratik yap: Unity playground