Beri Kerusakan pada Semua
Termasuk bagian Arsitektur Game di Unity dalam perjalanan Unity di Coddy. Pelajaran 43 dari 50.
Tantangan
SedangSekarang 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.
IDamageablemendeklarasikan satu method,void TakeDamage(int amount);.Enemymengimplementasikannya. Enemy memilikihealth,damage, danattackEvery, yang diatur di Inspector (grunt memiliki nilai 2, 1, dan 1; dasher memiliki nilai 1, 2, dan 1).TakeDamagemengurangihealthsebesaramountdan menghancurkan musuh saat nilainya 0 atau kurang. DiStart, simpan jugaIDamageablemilik hero. Setiap frame, jika hero berada dalam jarak 1.2 unit, panggilTakeDamage(damage)miliknya, paling banyak sekali setiapattackEverydetik.Heromengimplementasikannya, denganswingDamage(1),maxHealth(5), dansafeTime(1) yang diatur di Inspector, sertahealthyang dimulai darimaxHealthdiAwake. Saat terkena serangan, kurangihealthsebesaramount, catat nilai health sebagaiHero HP: 4, dan lindungi hero dari serangan berikutnya selamasafeTimedetik. Saat health mencapai 0, catatThe hero fallsdan 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 memilikiIDamageable.
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
1Komponen, Bukan Hierarki
Komponen KecilSkrip Dasar MusuhKomponen AbstrakKomponen yang Bekerja SamaRingkasan: Turret Modular4Data Terserialisasi
Class yang Dapat DiserialisasiList di InspectorEnum di InspectorRingkasan: Tabel Loot10Proyek: Penyintas Arena
Sang PahlawanJenis Musuh5ScriptableObjects
Aset DataStatistik SenjataPengaturan BersamaGelombang sebagai DataUlasan: database Item8Kode yang Dapat Digunakan Kembali
Extension methodSingleton GenerikHelper GenerikUlasan: FindNearest