Özet: Ganimet Tablosu
Coddy'nin Unity Journey'sinin Unity'de Oyun Mimarisi bölümünün bir parçası. Ders 18 / 50.
Görev
KolayBir hazine sandığı, Boşluk tuşuna her bastığında bir eşya düşürür. LootChest.cs dosyasını yaz. Sahne, ganimet tablosunu Inspector'da doldurur; bu yüzden adlar eşleşmelidir:
- Sırasıyla
Common,Rare,EpicveLegendarydeğerlerini içeren birRarityenum'u. - Inspector'ın gösterebileceği bir
LootEntrysınıfı; bu sınıfta bir stringitemName, bir GameObjectprefabve bir Rarityraritybulunmalı. Ayrıca sandıktatableadında herkese açık birList<LootEntry>olmalı. Sahnenin tablosunda sırasıyla Apple ve Bread (Common), Silver Ring (Rare), Dragon Egg (Epic) ve Golden Crown (Legendary) bulunur. public int WeightOf(Rarity rarity), bir girdinin ağırlığını nadirliğine göre verir: Common 10, Rare 4, Epic 2, Legendary 1.public int TotalWeight(), tablonun tamamındaki ağırlıkları toplar.public LootEntry Pick(int roll), 0'danTotalWeight()değerine kadar (bu değer dahil değil) bir zar atışı için tabloyu sırayla dolaşır; her girdi ağırlığı kadar zar atışını kapsar: 0 ile 9 arasındaki atışlar Apple'ı, 10 ile 19 arasındakiler Bread'i, 20 ile 23 arasındakiler Silver Ring'i verir ve bu şekilde devam eder.- Boşluk tuşu bir kez
Random.Range(0, TotalWeight())ile zar atar, o girdiyi seçer, prefab'ını sandığın 1.5 birim üstünde oluşturur ve nadirliğini ve adınıRare: Silver Ringbiçiminde günlüğe yazar.
Play'e bas, sandığı birkaç kez aç, sonra Check'e bas.
Kendin dene
using System.Collections.Generic;
using UnityEngine;
public class LootChest : MonoBehaviour
{
}
Unity'de Oyun Mimarisi bölümündeki tüm dersler
1Hiyerarşiler Değil, Bileşenler
Küçük BileşenlerTemel Bir Düşman BetiğiSoyut BileşenlerBirlikte Çalışan BileşenlerÖzet: Modüler Taret4Serileştirilmiş Veriler
Serileştirilebilir SınıflarInspector'da ListelerInspector'da Enum'larÖzet: Ganimet Tablosu7Durum Makineleri
Sınıflar Olarak DurumlarBir Durum MakinesiGeçişlerDüşmanların Yapay ZekâsıTekrar: Kapı Durumları10Proje: Arena Hayatta Kalma
KahramanDüşman Türleri5ScriptableObjects
Veri VarlıklarıSilah İstatistikleriPaylaşılan AyarlarVeri Olarak DalgalarTekrar: Eşya Veritabanı8Yeniden Kullanılabilir Kod
Genişletme MetotlarıGeneric SingletonGeneric YardımcılarTekrar: FindNearest