Menu
CoddyTech

Beli dari Toko

Termasuk bagian Arsitektur Game di Unity dalam perjalanan Unity di Coddy. Pelajaran 29 dari 64.

Bab ini memindahkan data ke aset yang digunakan bersama oleh banyak objek. Item di toko adalah aset semacam itu, jadi barang yang dibeli pemain harus disimpan di Shop, bukan di dalam item tersebut.

challenge icon

Tantangan

Mudah

Biarkan tombol Space membeli item yang dipilih tanpa mengubah aset.

  1. Simpan item yang sudah dibeli di List<ItemData> owned dalam Shop.
  2. Saat kamu menekan Space, jika item sudah dimiliki, program mencatat Already owned: Iron Sword. Jika harganya lebih mahal daripada gold, program mencatat Not enough gold for Iron Sword.
  3. Jika tidak, kurangi gold sebesar harga item, tambahkan item itu ke owned, catat Bought Iron Sword, lalu perbarui teksnya.

Tekan tombol “Main” dan beli Long Bow. Lalu tekan tombol “Periksa”.

Coba sendiri

using System.Collections.Generic;
using UnityEngine;
using UnityEngine.InputSystem;
using TMPro;

public class Shop : MonoBehaviour
{
    public ItemDatabase database;
    public TMP_Text itemText;
    public TMP_Text goldText;
    public int gold = 50;
    private int index;

    void Start()
    {
        Show();
    }

    void Update()
    {
        if (Keyboard.current.rightArrowKey.wasPressedThisFrame)
        {
            index = (index + 1) % database.items.Count;
            Show();
        }
        if (Keyboard.current.leftArrowKey.wasPressedThisFrame)
        {
            index = (index - 1 + database.items.Count) % database.items.Count;
            Show();
        }
        // Space: beli item yang dipilih
    }

    void Show()
    {
        ItemData item = database.items[index];
        itemText.text = item.itemName + ": " + item.price + " gold";
        goldText.text = "Gold: " + gold;
    }
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Arsitektur Game di Unity

Latihan sendiri: Playground Unity