Bir Dalga
Coddy'nin Unity Oyunu: Kule Savunması kursunda ders 5 / 25.
Grunt ve Runner artık birer prefab; ayrıca bir Tank ve bir Boss var ve WP0 noktasında bir Spawner bulunuyor. Bir dalga birkaç sayıdan oluşur: hangi düşman, kaç tane ve aralarındaki mesafe. Bu yüzden Wave, [System.Serializable] sınıfıdır ve spawner, Inspector'ın oyunun sekiz dalgasıyla doldurduğu bir List<Wave> tutar. [System.Serializable] olmadan Unity listeyi dolduramaz ve liste boş kalır.
Aralarda boşluk bırakarak düşman oluşturmak için bir coroutine kullanılır: yield return new WaitForSeconds(...), oyunu durdurmadan bekler. Bir prefab sahnedeki waypoint'lere işaret edemez; bu yüzden spawner, Instantiate işleminden hemen sonra her yeni düşmana kendi waypoint'lerini verir:
Enemy enemy = Instantiate(wave.enemy, waypoints[0].position, Quaternion.identity);
enemy.waypoints = waypoints;
yield return new WaitForSeconds(wave.spacing);Görev
Kolayİlk Grunt dalgasını yol boyunca gönder.
Wave.csiçinde,Wavesınıfına[System.Serializable]ekle; ayrıcapublic Enemy enemy;,public int count;vepublic float spacing;alanlarını tanımla.WaveSpawneriçinde[SerializeField] private List<Wave> waves;ve[SerializeField] private Transform[] waypoints;ekle.Startiçinden, yukarıdaki gibiwaves[0].countsayıda düşman oluşturan bir coroutine çalıştır.
“Oyna” düğmesine bas: altı Grunt, 1,2 saniye arayla yola çıkar. Ardından “Kontrol et” düğmesine bas.
Kendin dene
using UnityEngine;
// Daha sonra eklenecek: düşmanları dalgalar hâlinde yol boyunca ilerletir.
public class WaveSpawner : MonoBehaviour
{
}
Unity Oyunu: Kule Savunması bölümündeki tüm dersler
Kendi başına pratik yap: Unity playground