Menu
CoddyTech

Ü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.

challenge icon

Görev

Zor

Bölüm 1: Inventory sınıfını doldur; toplama sistemi hazır.

  1. Serileştirilebilir ItemStack (item ve count alanları public) ve InventoryData (List<ItemStack> stacks alanı public) ekle.
  2. Count, Add, Remove (0'daki bir yığın silinir) ve Describe metotlarını doldur: Wood 3, Plank 1 veya empty.
  3. Her değişiklik, Application.persistentDataPath konumundaki inventory.json dosyasına kaydeder ve Changed olayını tetikler; Awake bu 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

Kendi başına pratik yap: Unity playground