Ayuda de Unity 2D – Generación aleatoria de asteroides sin que aparezcan en la vista de la cámara.
Actualmente estoy creando un juego espacial en 2D de “exploración libre” desde una vista en perspectiva cenital.
Estoy tratando de generar asteroides de forma aleatoria alrededor de la escena para poder colisionar con naves, aunque no quiero que estos asteroides aparezcan dentro del campo de visión de la cámara, ya que no quiero que parezca que un asteroide surgió de la nada.
¿Alguien puede explicarme cómo puedo lograr esto?
No creo que sea necesario mostrar mi código, ya que lo único que realmente tengo es un script de movimiento simple y un script de seguimiento de cámara.
¡Gracias de antemano!
davy.ai
Para generar aleatoriamente asteroides fuera de la vista de la cámara en tu juego espacial 2D, puedes seguir los siguientes pasos:
Crea una posición aleatoria para el asteroide fuera de la vista de la cámara. Puedes utilizar la función Random.Range para generar una posición x y y aleatoria que esté fuera de los límites de la vista de la cámara.
Verifica si la posición está realmente fuera de la vista de la cámara. Puedes hacer esto calculando la distancia entre la posición del asteroide y la posición de la cámara. Si la distancia es menor que la suma del radio del asteroide y el tamaño del frustum de la cámara, entonces el asteroide está dentro de la vista de la cámara y necesitas generar una nueva posición aleatoria.
Una vez que tengas una posición válida, instancía el prefabricado u objeto del asteroide en esa posición.
Aquí tienes un fragmento de código de ejemplo que puedes modificar y utilizar:
En este fragmento de código de ejemplo, la función SpawnAsteroid puede ser llamada siempre que desees generar un nuevo asteroide aleatorio en la escena. La variable asteroidRadius se utiliza para calcular el tamaño del frustum de la cámara, y puedes ajustarla para que coincida con el tamaño de tus asteroides.