示例#1
0
    public List <MediumAsteroid> GetMediumAsteroid(int count)
    {
        if (count <= 0)
        {
            throw new ArgumentException("Count must be higher than 0");
        }
        List <MediumAsteroid> mediumAsteroids = new List <MediumAsteroid>();

        for (int i = 0; i < _mediumAsteroids.Count && mediumAsteroids.Count < count; i++)
        {
            if (!_mediumAsteroids[i].IsActive())
            {
                mediumAsteroids.Add(_mediumAsteroids[i]);
            }
        }
        if (mediumAsteroids.Count < count)
        {
            for (int i = mediumAsteroids.Count; i < count; i++)
            {
                MediumAsteroid mediumAsteroid = Instantiate(_mediumAsteroidPrefab);
                _mediumAsteroids.Add(mediumAsteroid);
                mediumAsteroids.Add(mediumAsteroid);
            }
        }
        return(mediumAsteroids);
    }
示例#2
0
    /// <summary>
    /// Splits the medium asteroid provided into n number of small asteroids
    /// </summary>
    public void SplitMediumAsteroid(MediumAsteroid asteroid)
    {
        for (int i = 0; i < asteroidSplitCount; i++)
        {
            asteroidPooler.SpawnFromPool(asteroidPooler.SmallPoolTag, asteroid.transform.position, levelManager.LevelColor);
        }

        // Return 'destroyed' asteroid to the pool
        asteroidPooler.ReturnToPool(asteroidPooler.MediumPoolTag, asteroid);

        explosion.Play();
    }