예제 #1
0
 /// <summary>
 /// Старт стадии в волне
 /// </summary>
 /// <param name="waveEnemy"></param>
 /// <returns></returns>
 private IEnumerator StartStages(WaveEnemy waveEnemy)
 {
     for (int i = 0; i < waveEnemy.listStageInWave.Count; i++)
     {
         WaveStage waveStage = waveEnemy.listStageInWave[i];
         StartCoroutine(StartShowEnemy(waveStage));
         yield return(new WaitForSeconds(waveStage.delayStartNextStage));
     }
 }
예제 #2
0
        /// <summary>
        /// Появления противников стадии
        /// </summary>
        /// <param name="waveStage"></param>
        /// <returns></returns>
        private IEnumerator StartShowEnemy(WaveStage waveStage)
        {
            int countEnemy = Random.Range(waveStage.minCountEnemyInStage, waveStage.maxCountEnemyInStage);

            for (int i = 0; i < countEnemy; i++)
            {
                GameObject enemyPref  = PoolManager.GetObject(waveStage.indexEnemyPrefabInPoll, transform.position, Quaternion.identity);
                EnemyActor enemyActor = enemyPref.GetComponent <EnemyActor>();

                bool statusAddEnemy = enemyActor.SetUpgradeLVL(waveStage.indexLavelPowerEnemy, _pathMovingCollider.ListPositionPathMoving.Head);
                if (statusAddEnemy)
                {
                    countCreateEnemy++;
                }

                yield return(new WaitForSeconds(waveStage.delayShowOneEnemy));

                if (isLastWave && (i == countEnemy - 1))
                {
                    isFinishSpawn = true;
                }
            }
        }