Menu
CoddyTech

Ulasan: database Item

Termasuk bagian Arsitektur Game di Unity dalam perjalanan Unity di Coddy. Pelajaran 23 dari 50.

challenge icon

Tantangan

Sedang

Toko pandai besi menjual barang dari database item yang akan digunakan bersama oleh setiap toko dalam game. Tulis dua jenis aset dan Shop:

  • ItemData (di ItemData.cs): sebuah ScriptableObject dengan entri menu Create dan field publik itemName (sebuah string) dan price (sebuah int).
  • ItemDatabase (di ItemDatabase.cs): sebuah ScriptableObject dengan entri menu Create dan satu field publik, items, berupa list ItemData.
  • Shop memiliki field publik database bertipe ItemDatabase. itemText menampilkan item yang dipilih sebagai Iron Sword: 30 gold, dimulai dari item pertama, dan goldText menampilkan jumlah gold sebagai Gold: 50.
  • Panah kanan memilih item berikutnya, lalu kembali ke item pertama setelah item terakhir. Panah kiri bergerak ke arah sebaliknya, dari item pertama ke item terakhir.
  • Spasi membeli item yang dipilih. Jika pemain sudah membeli suatu item, catat Already owned: Iron Sword. Jika harga item melebihi jumlah gold, catat Not enough gold for Iron Sword. Jika tidak, jumlah gold berkurang sebesar harganya, item menjadi milik pemain, teks diperbarui, dan Console menampilkan Bought Iron Sword.
  • Simpan barang yang telah dibeli di Shop. Aset tetap seperti semula: database digunakan bersama, dan di Editor, perubahan pada aset tetap ada setelah mode Play berakhir.

Proyek ini memiliki empat aset ItemData (Iron Sword 30, Oak Shield 20, Healing Potion 10, Long Bow 45), sebuah aset Database yang mencantumkan semuanya dalam urutan tersebut, dan Inspector menempatkan Database di field database milik Shop. Tekan Play, berbelanja, lalu tekan Check.

Coba sendiri

using UnityEngine;
using UnityEngine.InputSystem;
using TMPro;

public class Shop : MonoBehaviour
{
    public TMP_Text itemText;
    public TMP_Text goldText;
    public int gold = 50;

    // Field database, navigasi dengan tombol panah, dan pembelian dengan Space diletakkan di sini
}

Semua pelajaran di Arsitektur Game di Unity