20# 1942 Classic 7.
V této lekci nás čeká rework Enemy a rychlosti a cesty do WaveConfig. Začneme tím, že si otevřeme EnemyPath.cs, ve kterém jsme připojovali WaveConfing ručně přes SerializeField a stejně jsme nastavovali i rychlost nepřítele.
Jako první odstraníme SerializedField u WaveConfig. Stále budeme potřebovat tuto proměnnou, ale budeme ji brát automaticky z toho, ve které vlně bude náš Enemy. Jako druhé můžeme odstranit celý řádek kde definujeme rychlost nepřítele, protože tu si můžeme brát ze waveconfig pomocí GetEnemyMoveSpeed().
Jako třetí opravíme funkci MoveEnemy, kde jsme používali proměnnou enemyMoveSpeed, kterou by jsme teď měli mít podtrženou červeně a nahradíme ji funkcí GetEnemyMoveSpeed z waveConfig.
Nyní propojení s waveConfig. Tím, že jsme zrušili serializované pole nemáme možnost ho připojit ručně. Proto si uděláme public funkci, kterou budeme volat ze spawneru a ta nám skrz parametr bude vracet waveConfig. Začneme vytvoření funkce SerWaveConfig(), která budeme mít parametr WaveConfig.
Nyní samotné uložení do WaveConfig. Máme 3 waveConfig, jeden je v EnemyPath.cs a definovali jsme ho na začátku souboru, druhý je WaveConfig.cs odkud voláme tuto funkce a třetí je uvnitř této funkce a je definovaný jako parametr (uvnitř závorek). To čeho se snažíme docílit je nyní zapsat obsah z parametru do proměnné ve třídě EnemyPath.cs. Oboje se jmenuje waveConfig, ale pokud myslíme proměnnou, která je součástí třídy, ve které je tato funkce přidáme před ni this. Takže proměnná označená this není ta která je definována uvnitř funkce, ale ta, která je definována ve třídě (začátek souboru .cs). Proto můžeme napsat this.waveConfig = waveConfig. První je proměnná třídy a druhé je proměnná z parametru funkce.
Uložíme a přepneme se do EnemySpawner. Zde nebude těch úprav tolik a všechny úpravy budou uvnitř SpawnAllEnemiesInWave(). Když zde totiž vytváříme Enemy (Instantiate), musíme rovnou zavolat jeho funkci a říct mu jaké vlny je součástí a tím pádem. jakou má mít rychlost a cestu. Instantiate samo nevytváří něco co můžeme snadno ve scriptu uchopit, ale pokud ho rovnou zařadíme do proměnné (var) můžeme ho pomocí této proměnné volat.
Když máme nepřítele uloženého/pojmenovaného, můžeme z něj volat funkce.
Uložíme a přepneme se do Unity. Na první pohled se nic nezměnilo, nastavení cesty i rychlosti jsme ve Wave 01 měli i předtím, ale až teď skutečně funguje.
V příští lekci uděláme více vln nepřátel.
0 Comments