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.
Tantangan
MudahBiarkan tombol Space membeli item yang dipilih tanpa mengubah aset.
- Simpan item yang sudah dibeli di
List<ItemData> owneddalam Shop. - Saat kamu menekan Space, jika item sudah dimiliki, program mencatat
Already owned: Iron Sword. Jika harganya lebih mahal daripadagold, program mencatatNot enough gold for Iron Sword. - Jika tidak, kurangi
goldsebesar harga item, tambahkan item itu keowned, catatBought 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;
}
}
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Arsitektur Game di Unity
1Komponen, Bukan Hierarki
Komponen KecilSkrip Dasar MusuhKomponen AbstrakKomponen yang Bekerja BersamaRangkuman: Turret ModularRangkuman: Meriam Kembar4Data yang Diserialisasi
Class yang Dapat DiserialisasiList di InspectorEnum di InspectorRangkuman: Tabel LootRangkuman: Acak Loot2Antarmuka di Unity
IDamageableAntarmuka dan TryGetComponentGetComponentsRingkasan: Tombol InteractRingkasan: Terdekat dalam Jangkauan5ScriptableObjects
Aset DataStatistik SenjataPengaturan BersamaSelamatkan AnginGelombang sebagai DataRekap: database ItemBeli dari Toko8Kode yang Dapat Digunakan Kembali
Extension methodSingleton GenerikHelper GenerikUlasan: FindNearestLatihan sendiri: Playground Unity