Menu
CoddyTech

Alışveriş ve Envanter

Coddy'nin Unity Journey'sinin Gerçek Oyunlar Geliştirmek bölümünün bir parçası. Ders 54 / 56.

Seviyeler arasında kahraman bir dükkânı ziyaret eder. Rafta üç eşya bekler: bir Miğfer, Çizme ve Pelerin; her biri fiyatını gösteren bir düğmenin üzerindedir. Kahramanın henüz alamayacağı eşyalar için para kazanmasını sağlayan bir Çalış düğmesi de vardır. Kahramanın satın aldıkları altta listelenen envantere eklenir; kalan paralar ve sahip olunan eşyalar, oyun bir sonraki kez başlatıldığında da orada olur.

İki betik yaz: Shop nesnesine Shop, her eşyanın düğmesine de ShopItem.

challenge icon

Görev

Zor

Inspector, Shop'a startCoins (100), pay (25), coinsText, inventoryText, workButton ve items değerlerini, raf sırasındaki üç ShopItem'ı verir. Her ShopItem'a itemName ve price (Helmet 40, Boots 60, Cape 120), label (düğmesindeki metin) ve shop değerlerini verir.

  • Coin'ler Coins anahtarı altında kaydedilir; kayıtlı verisi olmayan bir oyuncu startCoins ile başlar. coinsText bunları Coins: 100 olarak gösterir.
  • Çalış düğmesine her tıklama pay kadar coin kazandırır.
  • Bir eşya, Owned_ anahtarıyla birlikte eşyanın adı (Owned_Helmet) 1 değerini tutuyorsa sahiplenilmiş olur. Eşya satılık olduğu sürece etiketi Helmet: 40, sahiplenildiğinde ise Helmet: owned yazar.
  • Bir eşyanın düğmesine yalnızca eşya sahiplenilmemişse ve oyuncunun en az eşyanın fiyatı kadar coini varsa tıklanabilir. Düğmeye tıklamak eşyayı satın alır: fiyat coin'lerden düşülür ve eşya sahiplenilir.
  • inventoryText, sahiplenilen eşyaları raf sırasına göre Inventory: Helmet, Cape olarak listeler veya Inventory: empty yazar.
  • Her değişiklik anında kaydedilir ve tüm metinler ile düğmeler yeni durumu gösterir.

Oyna'ya bas, alışveriş yap ve çalış; ardından Durdur'a ve tekrar Oyna'ya bas, sonra Kontrol Et'e bas.

Kendin dene

using UnityEngine;
using UnityEngine.UI;
using TMPro;

public class Shop : MonoBehaviour
{
    public int startCoins = 100;
    public int pay = 25;
    public TMP_Text coinsText;
    public TMP_Text inventoryText;
    public Button workButton;
    public ShopItem[] items;
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Gerçek Oyunlar Geliştirmek bölümündeki tüm dersler