Menu
CoddyTech

Her Şeye Hasar Ver

Coddy'nin Unity Journey'sinin Unity'de Oyun Mimarisi bölümünün bir parçası. Ders 43 / 50.

challenge icon

Görev

Orta

Artı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.

  • IDamageable tek bir metot bildirir: void TakeDamage(int amount);.
  • Enemy bu arayüzü uygular. Inspector'da ayarlanan health, damage ve attackEvery değerlerini alır (grunt için sırasıyla 2, 1 ve 1; dasher için 1, 2 ve 1). TakeDamage, amount değerini health'ten düşürür ve değer 0 veya altına indiğinde düşmanı yok eder. Start içinde kahramanın IDamageable bileşenini de sakla. Her karede, kahraman 1.2 birim mesafedeyken TakeDamage(damage) metodunu, en fazla attackEvery saniyede bir çağır.
  • Hero bu arayüzü uygular; Inspector'da swingDamage (1), maxHealth (5) ve safeTime (1) ayarlanır. Ayrıca Awake içinde maxHealth değerinden başlatılan bir health değeri vardır. Bir darbe amount değerini düşürür, sağlığı Hero HP: 4 olarak günlüğe yazar ve kahramanı safeTime saniye boyunca başka darbelerden korur. Sağlık 0'a indiğinde The hero falls mesajı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, IDamageable arayüzüne sahip her şeye TakeDamage(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