/// <summary> Shoots an asteroid to the player </summary> void ShootAsteroid() { GameObject asteroid = asteroidPool.GetAsteroidFromPool((AsteroidPoolTest.AsteroidSize)Random.Range(0, 2)); //Asteroid spawn pos Vector2 spawnPosition = playerRB2D.position + GenerateDirection() * spawnRadius; //Point inside spawn radius Vector2 fieldPoint = playerRB2D.position + Random.insideUnitCircle * spawnRadius; //Direciton to shoot at Vector2 direction = (fieldPoint - spawnPosition).normalized; asteroid.GetComponent <AsteroidMovement>().SpawnAsteroid(spawnPosition, direction, Random.Range(20, 40), Random.Range(20, 40)); }
/// <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); }