Example #1
0
        private void PopulatePool()
        {
            SpawnableBase newLazer = lazerFactory.GetItem();

            newLazer.SetPool(lazerPool);
            newLazer.transform.SetParent(playerView.ShootPos);
            newLazer.gameObject.SetActive(false);
            lazerPool.SetInstance(newLazer);
        }
Example #2
0
 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);
     }
 }
Example #3
0
        private void ShootLazers()
        {
            if (lazerPool.IsPoolEmpty())
            {
                PopulatePool();
            }

            SpawnableBase Lazer = lazerPool.GetInctance();

            Lazer.transform.position = playerView.ShootPos.position;
            Lazer.gameObject.SetActive(true);
        }
Example #4
0
        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);
            }
        }
Example #5
0
        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));
            }
        }
Example #6
0
 public abstract void SetSpawnable(SpawnableBase spawnable);