Orde di nemici
Fa parte della sezione Architettura dei giochi in Unity del percorso Unity di Coddy. Lezione 44 di 50.
Sfida
MedioOra i nemici arrivano a ondate e le ondate sono dati. Mantieni tutto ciò che hai realizzato nelle lezioni precedenti. L’arena non ha più nemici propri: i prefab Grunt e Dasher contengono i tuoi script, quattro punti di generazione sono agli angoli e l’oggetto Spawner al centro ha lo script WaveSpawner.
- In
WaveSet.cs, aggiungi una classeWavecon[System.Serializable], che includapublic Enemy enemy(il prefab),public int countepublic float spacing.WaveSetè un ScriptableObject con[CreateAssetMenu], unpublic List<Wave> wavese unpublic float restBetweenWaves. L’assetArenadella scena contiene tre ondate (3 grunt a 0.5 s di distanza, 2 dasher a 1 s di distanza, 5 grunt a 0.4 s di distanza) e una pausa di 2 secondi. Enemyricevepublic static event Action<Enemy> Died, attivato con il nemico subito prima che venga distrutto.WaveSpawnerhawaveSetespawnPointsassegnati dall’Inspector epublic int Wave { get; private set; }, il numero dell’ondata in corso. DaStart, una coroutine esegue in ordine le ondate dell’asset. Per ciascuna: aggiungi 1 aWavee registralo, comeWave 1; genera icountnemici dell’ondata a intervalli dispacingsecondi, il nemicoi(a partire da 0) inspawnPoints[i % spawnPoints.Length]; aspetta finché non rimangono nemici in vita; poi fai una pausa direstBetweenWavessecondi. Dopo l’ultima ondata, la serie ricomincia dalla prima eWavecontinua a contare: 4, 5 e così via.- Conta i nemici in vita usando l’evento
Died: iscriviti inOnEnablee annulla l’iscrizione inOnDisable. Lo spawner legge soltanto l’asset: nell’Editor, una modifica apportata a un asset mentre il gioco è in esecuzione rimane nell’asset dopo Play.
Premi Play e sopravvivi ad alcune ondate, poi premi Check.
Provalo tu
using UnityEngine;
public class WaveSpawner : MonoBehaviour
{
// Una lezione successiva completerà questa parte: invierà le ondate nell'arena.
}
Tutte le lezioni di Architettura dei giochi in Unity
1Componenti, non gerarchie
Componenti piccoliUno script base per i nemiciComponenti astrattiComponenti che collaboranoRiepilogo: torretta modulare4Dati serializzati
Classi serializzabiliListe nell'InspectorEnum nell'InspectorRiepilogo: tabella del bottino7Macchine a stati
Gli stati come classiUna macchina a statiTransizioniIntelligenze dei nemiciRiepilogo: stati della porta10Progetto: Sopravvissuto nell’arena
L’eroeTipi di nemici5ScriptableObjects
Asset di datiStatistiche delle armiImpostazioni condiviseOndate come datiRiepilogo: database degli oggetti