Resep Kerajinan
Termasuk bagian Arsitektur Game di Unity dalam perjalanan Unity di Coddy. Pelajaran 63 dari 64.
Tantangan
SulitBerikan resep kepada CraftingBench.
- Tambahkan
Ingredientyang dapat diserialisasi (publicitem,amount) danRecipe(publicresult,List<Ingredient> needs), sertaList<Recipe> recipesyang bersifat public. - Di
Start,recipeButtons[i]memanggilCraft(i). public void Craft(int index): jika semua bahan tersedia, hapus bahan-bahan itu, tambahkan satu hasil, lalu catatCrafted Axe.Refreshmembuat tombol dapat diklik hanya jika resepnya dapat dibuat.
Tekan tombol “Main” dan buat rakit. Lalu tekan tombol “Periksa”.
Coba sendiri
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));
// Resep: tombol resep i membuat resep i
Refresh();
}
void Refresh()
{
// Resep: tombol resep hanya bisa diklik jika resepnya bisa dibuat
inventoryText.text = "Inventory: " + inventory.Describe();
}
}
Semua pelajaran di Arsitektur Game di Unity
1Komponen, Bukan Hierarki
Komponen KecilSkrip Dasar MusuhKomponen AbstrakKomponen yang Bekerja BersamaRangkuman: Turret ModularRangkuman: Meriam Kembar4Data yang Diserialisasi
Class yang Dapat DiserialisasiList di InspectorEnum di InspectorRangkuman: Tabel LootRangkuman: Acak Loot2Antarmuka di Unity
IDamageableAntarmuka dan TryGetComponentGetComponentsRingkasan: Tombol InteractRingkasan: Terdekat dalam Jangkauan5ScriptableObjects
Aset DataStatistik SenjataPengaturan BersamaSelamatkan AnginGelombang sebagai DataRekap: database ItemBeli dari Toko8Kode yang Dapat Digunakan Kembali
Extension methodSingleton GenerikHelper GenerikUlasan: FindNearestLatihan sendiri: Playground Unity