Menu
CoddyTech

Ringkasan: Tabel Loot

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

challenge icon

Tantangan

Mudah

Peti harta menjatuhkan satu item setiap kali kamu menekan Space. Tulis LootChest.cs. Scene mengisi tabel loot di Inspector, jadi namanya harus cocok:

  • Enum Rarity dengan Common, Rare, Epic, dan Legendary, sesuai urutan tersebut.
  • Class LootEntry yang bisa ditampilkan Inspector, dengan string itemName, GameObject prefab, dan Rarity rarity, serta List<LootEntry> publik bernama table pada 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, seperti Rare: 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