Düşman Dalgaları
Coddy'nin Unity Journey'sinin Unity'de Oyun Mimarisi bölümünün bir parçası. Ders 44 / 50.
Görev
OrtaDüşmanlar artık dalgalar hâlinde geliyor ve dalgalar verilerden oluşuyor. Önceki derslerdeki her şeyi koru. Arenanın artık kendi düşmanları yok: Grunt ve Dasher prefablari betiklerini taşıyor, dört doğma noktası köşelerde duruyor ve ortadaki Spawner nesnesinde WaveSpawner betiği bulunuyor.
WaveSet.csiçinde,[System.Serializable]ile işaretlenmiş birWavesınıfı ekle. Bu sınıftapublic Enemy enemy(prefab),public int countvepublic float spacingolsun.WaveSet,[CreateAssetMenu]ile işaretlenmiş bir ScriptableObject olsun;public List<Wave> wavesvepublic float restBetweenWavesiçersin. SahnedekiArenavarlığı üç dalga (0.5 saniye arayla 3 Grunt, 1 saniye arayla 2 Dasher, 0.4 saniye arayla 5 Grunt) ve 2 saniyelik bir dinlenme süresi içersin.Enemysınıfınapublic static event Action<Enemy> Diedekle; düşman yok edilmeden hemen önce, düşman argüman olarak verilerek bu olay tetiklensin.WaveSpawnersınıfında Inspector'dan alınanwaveSetvespawnPointsile oyunda olan dalganın numarasını tutanpublic int Wave { get; private set; }bulunsun.Startiçinden bir coroutine, varlığın dalgalarını sırayla çalıştırsın. Her dalga için:Wavedeğerini 1 artır veWave 1olarak kaydet; dalganıncountsayıda düşmanını, aralarındaspacingsaniye olacak şekilde oluştur;i. düşman (0'dan başlayarak)spawnPoints[i % spawnPoints.Length]noktasında oluşsun; hayatta düşman kalmayana kadar bekle; sonrarestBetweenWavessaniye dinlen. Son dalgadan sonra set ilk dalgadan yeniden başlasın veWavesaymaya devam etsin: 4, 5 ve böyle devam etsin.- Hayatta olan düşmanları
Diedolayıyla say:OnEnableiçinde abone ol veOnDisableiçinde abonelikten çık. Spawner varlığı yalnızca okur: oyun çalışırken Editor'da bir varlıkta yapılan değişiklik, Play'den sonra da varlıkta kalır.
Play'e bas ve birkaç dalgadan sağ çık, ardından Check'e bas.
Kendin dene
using UnityEngine;
public class WaveSpawner : MonoBehaviour
{
// Sonraki bir ders burayı tamamlayacak: dalgaları arenaya gönderecek.
}
Unity'de Oyun Mimarisi bölümündeki tüm dersler
1Hiyerarşiler Değil, Bileşenler
Küçük BileşenlerTemel Bir Düşman BetiğiSoyut BileşenlerBirlikte Çalışan BileşenlerÖzet: Modüler Taret4Serileştirilmiş Veriler
Serileştirilebilir SınıflarInspector'da ListelerInspector'da Enum'larÖzet: Ganimet Tablosu7Durum Makineleri
Sınıflar Olarak DurumlarBir Durum MakinesiGeçişlerDüşmanların Yapay ZekâsıTekrar: Kapı Durumları10Proje: Arena Hayatta Kalma
KahramanDüşman Türleri5ScriptableObjects
Veri VarlıklarıSilah İstatistikleriPaylaşılan AyarlarVeri Olarak DalgalarTekrar: Eşya Veritabanı8Yeniden Kullanılabilir Kod
Genişletme MetotlarıGeneric SingletonGeneric YardımcılarTekrar: FindNearest