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); } } }
/// <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); }
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); }