Menu
CoddyTech

Satu Gelombang

Pelajaran 5 dari 25 dalam kursus Game Unity: Tower Defense di Coddy.

Grunt dan Runner sekarang berupa prefab, bersama Tank dan Boss, sementara Spawner berada di WP0. Sebuah gelombang terdiri dari beberapa angka: musuh yang mana, berapa banyak, dan seberapa jauh jarak antar mereka. Jadi, Wave adalah class [System.Serializable], dan spawner menyimpan List<Wave> yang diisi Inspector dengan delapan gelombang dalam game. Tanpa [System.Serializable], Unity tidak dapat mengisi list tersebut, sehingga list tetap kosong.

Memunculkan musuh dengan jeda menggunakan coroutine: yield return new WaitForSeconds(...) menunggu tanpa menghentikan game. Prefab tidak dapat menunjuk waypoint di scene, jadi spawner memberikan waypoint kepada setiap musuh baru tepat setelah Instantiate:

Enemy enemy = Instantiate(wave.enemy, waypoints[0].position, Quaternion.identity);
enemy.waypoints = waypoints;
yield return new WaitForSeconds(wave.spacing);
challenge icon

Tantangan

Mudah

Kirim gelombang pertama Grunt menyusuri jalur.

  1. Di Wave.cs, pasang [System.Serializable] pada Wave, dengan public Enemy enemy;, public int count; dan public float spacing;.
  2. Di WaveSpawner, tambahkan [SerializeField] private List<Wave> waves; dan [SerializeField] private Transform[] waypoints;.
  3. Dari Start, jalankan coroutine yang memunculkan waves[0].count musuh seperti di atas.

Tekan tombol “Main”: enam Grunt bergerak keluar dengan jeda 1.2 detik. Lalu tekan tombol “Periksa”.

Coba sendiri

using UnityEngine;

// Akan dibuat nanti: mengirim musuh menyusuri jalur secara bergelombang.
public class WaveSpawner : MonoBehaviour
{
}

Semua pelajaran di Game Unity: Tower Defense

Latihan sendiri: Playground Unity