IEnumerator ContinousSpawnRoutine() { while (true) { if (GameControl.IsGameOver()) { yield break; } //float duration=SpawnWaveFinite(); //if(spawnLimit==_SpawnLimit.Finite && currentWaveID>=waveList.Count) break; //yield return new WaitForSeconds(duration); spawnCD = SpawnWaveFinite(); if (spawnLimit == _SpawnLimit.Finite && currentWaveID >= waveList.Count) { break; } while (spawnCD > 0) { spawnCD -= Time.deltaTime; yield return(null); } } }
public void _Spawn() { if (GameControl.IsGameOver()) { return; } if (IsSpawningStarted()) { if (spawnMode == _SpawnMode.Round) { if (spawnLimit == _SpawnLimit.Infinite) { if (waveList.Count != 0) { return; } } else { if (!waveList[currentWaveID].cleared) { return; } } } else if (!allowSkip) { return; } spawnCD = SpawnWaveFinite(); return; } if (spawnMode != _SpawnMode.Continous) { SpawnWaveFinite(); } else { StartCoroutine(ContinousSpawnRoutine()); } //spawningStarted=true; GameControl.StartGame(); }