Ringkasan: Tabel Loot
Termasuk bagian Arsitektur Game di Unity dalam perjalanan Unity di Coddy. Pelajaran 18 dari 50.
Tantangan
MudahPeti harta menjatuhkan satu item setiap kali kamu menekan Space. Tulis LootChest.cs. Scene mengisi tabel loot di Inspector, jadi namanya harus cocok:
- Enum
RaritydenganCommon,Rare,Epic, danLegendary, sesuai urutan tersebut. - Class
LootEntryyang bisa ditampilkan Inspector, dengan stringitemName, GameObjectprefab, dan Rarityrarity, sertaList<LootEntry>publik bernamatablepada peti. Tabel scene berisi Apple dan Bread (Common), Silver Ring (Rare), Dragon Egg (Epic), dan Golden Crown (Legendary), sesuai urutan tersebut. public int WeightOf(Rarity rarity)memberikan bobot entri berdasarkan rarity-nya: Common 10, Rare 4, Epic 2, Legendary 1.public int TotalWeight()menjumlahkan bobot seluruh tabel.public LootEntry Pick(int roll), untuk roll dari 0 sampai, tetapi tidak termasuk,TotalWeight(), menelusuri tabel sesuai urutan, dengan tiap entri mencakup sejumlah roll sebanyak bobotnya: roll 0 sampai 9 menghasilkan Apple, 10 sampai 19 menghasilkan Bread, 20 sampai 23 menghasilkan Silver Ring, dan seterusnya.- Space mengacak
Random.Range(0, TotalWeight())satu kali, memilih entri tersebut, memunculkan prefab-nya 1.5 unit di atas peti, lalu mencatat rarity dan namanya, sepertiRare: Silver Ring.
Tekan Play, buka peti beberapa kali, lalu tekan Check.
Coba sendiri
using System.Collections.Generic;
using UnityEngine;
public class LootChest : MonoBehaviour
{
}
Semua pelajaran di Arsitektur Game di Unity
1Komponen, Bukan Hierarki
Komponen KecilSkrip Dasar MusuhKomponen AbstrakKomponen yang Bekerja SamaRingkasan: Turret Modular4Data Terserialisasi
Class yang Dapat DiserialisasiList di InspectorEnum di InspectorRingkasan: Tabel Loot5ScriptableObjects
Aset DataStatistik SenjataPengaturan BersamaGelombang sebagai DataUlasan: database Item8Kode yang Dapat Digunakan Kembali
Extension methodSingleton GenerikHelper GenerikUlasan: FindNearest