Exemplo n.º 1
0
    private void DoContactDamage(GameObject collissioner, AsteroidPoolTest.AsteroidSize size)
    {
        if (collissioner.GetComponent <MultiTag>().HasTag("Damageable"))
        {
            HealthManager hm = collissioner.GetComponent <HealthManager>();

            if (size == AsteroidPoolTest.AsteroidSize.Big)
            {
                hm.TakeDamage(20f);
            }
            else if (size == AsteroidPoolTest.AsteroidSize.Medium)
            {
                hm.TakeDamage(10f);
            }
            else if (size == AsteroidPoolTest.AsteroidSize.Small)
            {
                hm.TakeDamage(5f);
            }
        }
    }
Exemplo n.º 2
0
    /// <summary> Spawns an asteroid </summary>
    /// <param name="size">Asteroid size</param>
    /// <param name="position">Asteroid position</param>
    /// <param name="direction">Asteroid direction</param>
    /// <param name="speed">Asteroid speed</param>
    /// <param name="rotationSpeed">Asteroid rotation speed</param>
    private void SpawnAsteroid(AsteroidPoolTest.AsteroidSize size, Vector2 position, Vector2 direction, float speed, float rotationSpeed)
    {
        GameObject asteroid = asteroidPool.GetAsteroidFromPool(size);

        asteroid.GetComponent <AsteroidMovement>().SpawnAsteroid(position, direction, speed, rotationSpeed);
    }
Exemplo n.º 3
0
    public GameObject GetAsteroidFromPool(AsteroidPoolTest.AsteroidSize size)
    {
        if (size == AsteroidPoolTest.AsteroidSize.Big)
        {
            foreach (GameObject asteroid in bigPool)
            {
                if (!asteroid.activeInHierarchy)
                {
                    asteroid.SetActive(true);
                    return(asteroid);
                }
            }
        }
        else if (size == AsteroidPoolTest.AsteroidSize.Medium)
        {
            foreach (GameObject asteroid in mediumPool)
            {
                if (!asteroid.activeInHierarchy)
                {
                    asteroid.SetActive(true);
                    return(asteroid);
                }
            }
        }
        else if (size == AsteroidPoolTest.AsteroidSize.Small)
        {
            foreach (GameObject asteroid in smallPool)
            {
                if (!asteroid.activeInHierarchy)
                {
                    asteroid.SetActive(true);
                    return(asteroid);
                }
            }
        }

        if (isGrowable)
        {
            if (size == AsteroidPoolTest.AsteroidSize.Big)
            {
                GameObject obj = (GameObject)Instantiate(bigAsteroid);
                bigPool.Add(obj);
                obj.SetActive(true);
                return(obj);
            }
            else if (size == AsteroidPoolTest.AsteroidSize.Medium)
            {
                GameObject obj = (GameObject)Instantiate(mediumAsteroid);
                mediumPool.Add(obj);
                obj.SetActive(true);
                return(obj);
            }
            else if (size == AsteroidPoolTest.AsteroidSize.Small)
            {
                GameObject obj = (GameObject)Instantiate(smallAsteroid);
                smallPool.Add(obj);
                obj.SetActive(true);
                return(obj);
            }
        }
        return(null);
    }