Advertisement
Guest User

Untitled

a guest
Nov 26th, 2015
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.98 KB | None | 0 0
  1. using UnityEngine;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4.  
  5. public class NewEnemySpawning : MonoBehaviour
  6. {
  7.     [SerializeField]private GameObject _enemyUnit;
  8.  
  9.     private List<GameObject> _spawnedEnemies;
  10.  
  11.     //private GameObject[] _spawnedEnemies;
  12.  
  13.     [SerializeField]private GameObject _timer;
  14.  
  15.     public float _waveCoolDown;
  16.     public float _spawnCoolDown;
  17.     public int _currentWaveEnemyCount;
  18.  
  19.     [SerializeField]private int _maxEnemiesPerWave = 6;
  20.  
  21.     void Start()
  22.     {
  23.         //_spawnedEnemies = new GameObject[_maxEnemiesPerWave];
  24.         StartCoroutine(SpawnWave());
  25.  
  26.         //getting waveCoolDown amount
  27.         _waveCoolDown = _timer.GetComponent<NewWaveTimer>()._waveTimeLeft;
  28.     }
  29.  
  30.     IEnumerator SpawnWave()
  31.     {
  32.         //let it loop
  33.         while (true)
  34.         {
  35.             //spawning enemies with time in between
  36.             for (int i = 0; i <= _maxEnemiesPerWave; i++)
  37.             {
  38.                 //_spawnedEnemies[_maxEnemiesPerWave] = (GameObject)Instantiate(_enemyUnit, transform.position, Quaternion.identity);
  39.                 GameObject _spawnedEnemy = (GameObject)Instantiate(_enemyUnit, transform.position, Quaternion.identity);
  40.                 _spawnedEnemies.Add(_spawnedEnemy);
  41.                 _currentWaveEnemyCount++;
  42.  
  43.                
  44.                 //portal shake?
  45.                 yield return new WaitForSeconds(_spawnCoolDown);
  46.             }
  47.  
  48.             //if there are no enemies then a new wave begins immediately
  49.             if (_currentWaveEnemyCount > 0)
  50.             {
  51.                 _waveCoolDown = 0;
  52.             }
  53.             _maxEnemiesPerWave++;
  54.  
  55.             yield return new WaitForSeconds(_waveCoolDown);
  56.         }
  57.     }
  58.  
  59.     //when enemies get destroyed the count goes down -- destruction of enemies is done in another class
  60.     public int CurrentWaveEnemyCount
  61.     {
  62.         get { return _currentWaveEnemyCount; }
  63.  
  64.         set { _currentWaveEnemyCount = value; }
  65.     }
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement