void Start() { spawnState = EnemyWaveManager.MachineState.Prepare; if (auto) { StartSequence(); } }
public void StartSequence() { spawnState = EnemyWaveManager.MachineState.Start; startSpawn = true; StartCoroutine(ISequenceProcess()); if (onSequenceStart != null) { onSequenceStart.Invoke(); } }
void Update() { if (spawnState == EnemyWaveManager.MachineState.Exhausted) { if (transform.childCount == 0) { spawnState = EnemyWaveManager.MachineState.Clean; } } }
IEnumerator ISequenceProcess() { spawnState = EnemyWaveManager.MachineState.Executing; for (int y = 0; y < enemys.Count; y++) { for (int i = 0; i < enemys[y].number; i++) { SpawnEnemy(enemys[y].prefab); yield return(new WaitForSeconds(spawnBuffer)); } } FinishSequence(); }
public void FinishSequence() { spawnState = EnemyWaveManager.MachineState.Finish; startSpawn = false; if (manager) { manager.OnSpawnPointFinish(this); #if (DEBUG) Debug.Log("Call FinishSeq via " + name); Debug.LogWarning(this.name + " Finished Sequence with " + transform.childCount + " spawn count"); #endif } if (onSequenceFinish != null) { onSequenceFinish.Invoke(); } spawnState = EnemyWaveManager.MachineState.Exhausted; }