Üretim Tezgâhı
Coddy'nin Unity Journey'sinin Unity'de Oyun Mimarisi bölümünün bir parçası. Ders 62 / 64.
Bir hayatta kalma oyununda üretim tezgâhı, topladıklarını kullanabileceğin eşyalara dönüştürür. İki düğmeyle odun ve taş toplanır, üç tarif de bunları daha fazlasına dönüştürür: iki odun bir tahta, bir tahta ve iki taş bir balta, dört tahta ise bir sal yapar. Bir tarifin düğmesine yalnızca envanterde tarifin gerektirdiği her şey varken basılabilir ve üretim bu malzemeleri tüketir. Tarifler, Inspector'da tezgâha girilen verilerdir; bu nedenle yeni bir tarif için yeni kod yazmak gerekmez. Envanterdeki her değişiklik, dinleyen herkese bildirilir ve her değiştiğinde JSON olarak kaydedilir; böylece oyundan çıkmak hiçbir şeyin kaybolmasına yol açmaz.
Bunu iki dersle oluşturacağız. Bu derste Backpack'teki Inventory yazılıyor; tezgâhın tarifleri sonraki derste ele alınacak.
Görev
ZorBölüm 1: Inventory sınıfını doldur; toplama sistemi hazır.
- Serileştirilebilir
ItemStack(itemvecountalanları public) veInventoryData(List<ItemStack> stacksalanı public) ekle. Count,Add,Remove(0'daki bir yığın silinir) veDescribemetotlarını doldur:Wood 3, Plank 1veyaempty.- Her değişiklik,
Application.persistentDataPathkonumundakiinventory.jsondosyasına kaydeder veChangedolayını tetikler;Awakebu dosyayı yükler.
“Oyna” düğmesine bas, kaynakları topla, ardından yeniden oyna: odun geri gelir. Sonra “Kontrol et” düğmesine bas.
Kendin dene
using System;
using System.Collections.Generic;
using System.IO;
using UnityEngine;
// ItemStack ve InventoryData buraya gelecek
public class Inventory : MonoBehaviour
{
public event Action Changed;
void Awake()
{
// inventory.json varsa yükle
}
public int Count(string item)
{
return 0;
}
public void Add(string item, int amount)
{
}
public void Remove(string item, int amount)
{
}
public string Describe()
{
return "empty";
}
}
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