private void PopulatePool() { SpawnableBase newLazer = lazerFactory.GetItem(); newLazer.SetPool(lazerPool); newLazer.transform.SetParent(playerView.ShootPos); newLazer.gameObject.SetActive(false); lazerPool.SetInstance(newLazer); }
private void PopulatePool() { for (int i = 0; i < currentLevel.LevelData.spawnables.Count; i++) { SpawnableBase currAsteroid = asteroidsFactory.GetItem(currentLevel.LevelData.spawnables[i]); currAsteroid.gameObject.transform.SetParent(levelView.SpawnableHolder); currAsteroid.gameObject.SetActive(false); spawnableManager.SetSpawnable(currAsteroid); currentPool.SetInstance(currAsteroid); } }
private void ShootLazers() { if (lazerPool.IsPoolEmpty()) { PopulatePool(); } SpawnableBase Lazer = lazerPool.GetInctance(); Lazer.transform.position = playerView.ShootPos.position; Lazer.gameObject.SetActive(true); }
public override SpawnableBase GetItem(string name) { if (asterods == null) { InitFactory(); } if (asterods.ContainsKey(name)) { SpawnableBase asteroid = Instantiate(asterods[name]); asteroid.gameObject.SetActive(false); return(asteroid); } else { return(null); } }
private IEnumerator Spawn() { while (true) { if (currentPool.IsPoolEmpty() == true) { PopulatePool(); } if (CanSpawn) { SpawnableBase currAsteroid = currentPool.GetInctance(); currAsteroid.SetPool(currentPool); currAsteroid.transform.position = levelView.SpawnPos[Random.Range(0, levelView.SpawnPos.Count)].position; currAsteroid.gameObject.SetActive(true); } yield return(new WaitForSecondsRealtime(currentLevel.LevelData.spawnRate)); } }
public abstract void SetSpawnable(SpawnableBase spawnable);