Her Şeye Hasar Ver
Coddy'nin Unity Journey'sinin Unity'de Oyun Mimarisi bölümünün bir parçası. Ders 43 / 50.
Görev
OrtaArtık çatışma iki yönlü. Önceki derslerdeki her şeyi koru. Düşmanlara artık etiket eklenmiyor: saldırı, zarar verebileceklerini bir arayüz aracılığıyla buluyor ve düşmanlar da kahramana aynı arayüz üzerinden zarar veriyor.
IDamageabletek bir metot bildirir:void TakeDamage(int amount);.Enemybu arayüzü uygular. Inspector'da ayarlananhealth,damageveattackEverydeğerlerini alır (grunt için sırasıyla 2, 1 ve 1; dasher için 1, 2 ve 1).TakeDamage,amountdeğerinihealth'ten düşürür ve değer 0 veya altına indiğinde düşmanı yok eder.Startiçinde kahramanınIDamageablebileşenini de sakla. Her karede, kahraman 1.2 birim mesafedeykenTakeDamage(damage)metodunu, en fazlaattackEverysaniyede bir çağır.Herobu arayüzü uygular; Inspector'daswingDamage(1),maxHealth(5) vesafeTime(1) ayarlanır. AyrıcaAwakeiçindemaxHealthdeğerinden başlatılan birhealthdeğeri vardır. Bir darbeamountdeğerini düşürür, sağlığıHero HP: 4olarak günlüğe yazar ve kahramanısafeTimesaniye boyunca başka darbelerden korur. Sağlık 0'a indiğindeThe hero fallsmesajını günlüğe yaz ve Hero betiğini kapat (enabled = false). Düşmüş bir kahraman darbeleri yok sayar.- Saldırı artık etiketleri kontrol etmez veya hiçbir şeyi yok etmez: erişim mesafesinde ve önünde bulunan,
IDamageablearayüzüne sahip her şeyeTakeDamage(swingDamage)çağrısını yapar.
Play'e basıp dövüş, ardından Check'e bas.
Kendin dene
// İlerideki bir ders bunun içini dolduracak: zarar görebilen her şey.
public interface IDamageable
{
}
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