private IEnumerator Spawning() { while (true) { if (Time.time > spawnTime) { spawnTime = Time.time + Random.Range(minTimeSpawn, maxTimeSpawn); GameObject go; //Get random upgrade from pool if upgrades amount more than one if (upgrades.Length > 1) { string upgrade = upgrades[Random.Range(0, upgrades.Length)].name; go = SpawningPool.CreateFromCache(upgrade); } else { go = SpawningPool.CreateFromCache(upgrades[0].name); } //Set position upgradeSpawnPos.x = Random.Range(-bound.x, bound.x); go.transform.position = upgradeSpawnPos; //Add to array var upgradeComponent = go.GetComponent <UpgradeBase>(); activeUpgrades.Add(upgradeComponent); } yield return(null); } }
private IEnumerator SendEnemytWave() { RestPlaceController restPlaceCon; GameObject enemyGo; EnemyController enemy; PatternRoute pattern; Enemy enemyInfo; int range; while (true) //TODO Canviar per comprovació de Game Over { range = Random.Range(level.minEnemiesPerWave, level.maxEnemiesPerWave); for (var i = 0; i < range; i++) { if (CheckRestPlacesEnemy(out restPlaceCon)) { enemyGo = SpawningPool.CreateFromCache("EO1"); enemy = enemyGo.GetComponent <EnemyController> (); pattern = restPlaceCon.enemyComming(enemy); enemyInfo = new Enemy( GetNextEnemyIdString(), level.enemyHealth, level.enemySpeed, pattern, restPlaceCon, 1 ); enemy.Init(enemyInfo); } Debug.Log(restPlaceCon); } yield return(new WaitForSeconds(level.timeBetweenEnemyWaves)); } }
private void ProjectileSpawn() { for (int i = 0; i < barrels.Length; i++) { GameObject go = SpawningPool.CreateFromCache(bulletPrefab.name); go.transform.position = barrels[i].position; go.transform.rotation = Quaternion.identity; } nextFireTime = Time.time + fireDelay; }
// Start is called before the first frame update void Start() { int count = 3; for (int i = 0; i <= count; i++) { GameObject t_waveMonster = ReferenceManager.instance.GetData(UnityEngine.Random.Range(0, count)); FunctionHelper.AddPrefabCheck(t_waveMonster.name, t_waveMonster); GameObject t_go = SpawningPool.CreateFromCache(t_waveMonster.name); } }
IEnumerator SpawnWithDelay(int amount, float delay) { while (ships.Count < enemyCount) { if (Time.time >= lastSpawnTime) { lastSpawnTime = Time.time + spawnEnemyDelay; GameObject go = SpawningPool.CreateFromCache(enemyPrefab.name); go.transform.position = spawnPosition; //For safe object spawn EnemyShip ship = go.GetComponent <EnemyShip>(); ship.OnDeactivate += RecountActiveShips; ship.SetPath(path); ships.Add(ship); currentActiveShipCount++; spawnedShipsCount++; } yield return(null); } }
private IEnumerator SendTouristWave() { RestPlaceController restPlaceCon; GameObject turistaGo; PatternRoute pattern; TouristController tourist; Tourist touristInfo; int range; string touristId; while (true) { range = Random.Range(level.minTouristsPerWave, level.maxTouristsPerWave); for (var i = 0; i < range; i++) { if (CheckRestPlaces(out restPlaceCon)) { yield return(new WaitForSeconds(level.touristSpanSpeed)); turistaGo = SpawningPool.CreateFromCache("TO1"); touristId = GetNextTouristIdString(); tourist = turistaGo.GetComponent <TouristController> (); pattern = restPlaceCon.touristComming(tourist); touristInfo = new Tourist( TourisType.Girl, touristId, level.touristSpeed, pattern, restPlaceCon, 2 ); tourist.Init(touristInfo); } } yield return(new WaitForSeconds(level.timeBetweenWaves)); } }