Menu
CoddyTech

Beri Kerusakan pada Semua

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

challenge icon

Tantangan

Sedang

Sekarang pertarungan berlangsung dua arah. Pertahankan semua yang sudah dibuat dalam pelajaran sebelumnya. Musuh tidak lagi menggunakan tag: ayunan menyerang target melalui interface, dan musuh menyerang hero melalui interface yang sama.

  • IDamageable mendeklarasikan satu method, void TakeDamage(int amount);.
  • Enemy mengimplementasikannya. Enemy memiliki health, damage, dan attackEvery, yang diatur di Inspector (grunt memiliki nilai 2, 1, dan 1; dasher memiliki nilai 1, 2, dan 1). TakeDamage mengurangi health sebesar amount dan menghancurkan musuh saat nilainya 0 atau kurang. Di Start, simpan juga IDamageable milik hero. Setiap frame, jika hero berada dalam jarak 1.2 unit, panggil TakeDamage(damage) miliknya, paling banyak sekali setiap attackEvery detik.
  • Hero mengimplementasikannya, dengan swingDamage (1), maxHealth (5), dan safeTime (1) yang diatur di Inspector, serta health yang dimulai dari maxHealth di Awake. Saat terkena serangan, kurangi health sebesar amount, catat nilai health sebagai Hero HP: 4, dan lindungi hero dari serangan berikutnya selama safeTime detik. Saat health mencapai 0, catat The hero falls dan nonaktifkan skrip Hero (enabled = false). Hero yang sudah tumbang mengabaikan serangan.
  • Ayunan tidak lagi memeriksa tag atau menghancurkan apa pun: ayunan memanggil TakeDamage(swingDamage) pada semua target yang berada dalam jangkauan dan di depan, serta memiliki IDamageable.

Tekan Play dan bertarunglah, lalu tekan Check.

Coba sendiri

// Pelajaran berikutnya akan mengisi ini: apa pun yang bisa terluka.
public interface IDamageable
{
}

Semua pelajaran di Arsitektur Game di Unity