19# 1942 Classic 6.

Dnešní lekce je spawner. Vytvoříme systém kdy postupně budeme spawnovat nepřátele jedné vlny (instantiate). Později uděláme, že po první vlně se nám spustí další a další. A v momentě, kdy se dostaneme na poslední vlnu se spustí opět první a tím uděláme “nekonečnou” hru.

Začneme v Unity, vytvoříme si prázdná herní objekt a dáme mu jméno Enemy Spawner. Přidáme mu script (Add component) se jménem EnemySpawner, který si otevřeme ve Visual Studiu.

Ve Visual Studiu začneme vytvoření dvou proměnných (wavesConfigs a startingWave).

Ve Start() si z wavesConfigs vezmeme první vlnu a uložíme ji do proměnné. Zároveň si připravíme zapnutí Coroutine, která je bude spawnovat (instantiate).

 

Červené podtržení nemáme náhodou. Ještě jsme Coroutine nevytvořili. Ale to důležitější je za za jménem funkce. Do teď jsme nechávali za jménem funkce jen prázdné závorky,v tomto případě tam ale máme napsáno currentWave. Pomocí toho můžeme do dalších funkcí podávat čísla, řetězce nebo klidně objekty. V naší Coroutine budeme totiž potřebovat obsah configu, bez toho by jsme museli pro každou vlnu dělat vlastní coroutine.

Vytvoříme si private coroutine, která bude vyžadovat WaveConfig v parametrech funkce, které si uloží do proměnné waveConfig.

Opět máme červené podtržení, protože nemáme žádný return a ještě chvíli ho mít nebudeme, protože si napřed vytvoříme Instantiate. Ten požaduje 3 věci, co, kde a jak to otočit. Co budeme prefab nepřítele, kde bude na bodu 0 z vlny a otočení je nám jedno, lépe řečeno necháme aktuální otočení. Všechny ty věci budeme brát z waveConfig, kde máme funkce, které nám tyto věci vrací.

Když jsme vytvořili prvního nepřítele z vlny, dáme čekání, které zároveň bude náš return, na který coroutine čeká. Nebudeme ale čekat nějaký předepsaný čas, ale budeme čekat podle toho co máme napsané ve waveConfing. To nám vrací funkce GetTimeBetweenSpawns(), kterou k tomu použijeme.

Zatím to není rozhodně hotové, ale měli by jsme mít alespoň jednoho nepřítele ve vlně. Přepneme se do Unity a zde, smažeme nepřítele co máme ve scéně. Rozklikneme si Enemy Spawner, nastavíme kolik máme vln (zatím 1) a připojíme vlnu 01.

Po zapnutí by se vám v hierarchii měl objevit Enemy (Clone).

Samozřejmě jeden nepřítel je dost málo. Proto se vrátíme do Visual Studia a přidáme Smyčku do SpawnAllEnemiesInWave. Bude to “FOR” smyčka, který proběhne tolikrát, kolik máme nepřátel. Počet nepřátel ve vlně opět vezmeme funkcí z waveConfig (GetNumberOfEnemies).

Uložíme, přepneme se do unity a máme první vlnu hotovou.

Určitě by chtělo prodloužit pauzu mezi spawnem nepřátel, ale podstatné je, že jich máme všech 5. Bohužel, ještě ale nemáme hotovo. Aktuálně jeden typ nepřítele může sledovat pouze jednu cestu, protože cesta je přiřazena k nepříteli, stejně tak jeho rychlost. To by mělo být součástí WaveConfig. To nás čeká v další lekci.

 

 

0 Comments

Submit a Comment

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Share This