Menu
CoddyTech

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);
challenge icon

Görev

Kolay

İlk Grunt dalgasını yol boyunca gönder.

  1. Wave.cs içinde, Wave sınıfına [System.Serializable] ekle; ayrıca public Enemy enemy;, public int count; ve public float spacing; alanlarını tanımla.
  2. WaveSpawner içinde [SerializeField] private List<Wave> waves; ve [SerializeField] private Transform[] waypoints; ekle.
  3. Start içinden, yukarıdaki gibi waves[0].count sayı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