Menu
CoddyTech

Orde di nemici

Fa parte della sezione Architettura dei giochi in Unity del percorso Unity di Coddy. Lezione 44 di 50.

challenge icon

Sfida

Medio

Ora 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 classe Wave con [System.Serializable], che includa public Enemy enemy (il prefab), public int count e public float spacing. WaveSet è un ScriptableObject con [CreateAssetMenu], un public List<Wave> waves e un public float restBetweenWaves. L’asset Arena della 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.
  • Enemy riceve public static event Action<Enemy> Died, attivato con il nemico subito prima che venga distrutto.
  • WaveSpawner ha waveSet e spawnPoints assegnati dall’Inspector e public int Wave { get; private set; }, il numero dell’ondata in corso. Da Start, una coroutine esegue in ordine le ondate dell’asset. Per ciascuna: aggiungi 1 a Wave e registralo, come Wave 1; genera i count nemici dell’ondata a intervalli di spacing secondi, il nemico i (a partire da 0) in spawnPoints[i % spawnPoints.Length]; aspetta finché non rimangono nemici in vita; poi fai una pausa di restBetweenWaves secondi. Dopo l’ultima ondata, la serie ricomincia dalla prima e Wave continua a contare: 4, 5 e così via.
  • Conta i nemici in vita usando l’evento Died: iscriviti in OnEnable e annulla l’iscrizione in OnDisable. 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