Lección 2.3: Estampida de animales aleatorios

Tutorial

Beginner

+10XP

60 mins

(789)

Unity Technologies

Lección 2.3: Estampida de animales aleatorios

Descripción general:

Nuestros animales Prefabs caminan por la pantalla y se destruyen al salir de los límites, pero no aparecen en el juego a menos que los arrastremos. En esta lección haremos que los animales aparezcan por sí solos, en un lugar aleatorio de la parte superior de la pantalla. Para ello, crearemos un nuevo objeto y un nuevo Script para gestionar todo el proceso de generación.

Resultado del proyecto:

Cuando el usuario pulse la tecla S, un animal elegido al azar aparecerá en una posición aleatoria en la parte superior de la pantalla, caminando hacia el jugador.

Resources

1. Crea un gestor de generación

Si vamos a hacer toda esta compleja generación de objetos, deberíamos tener un script dedicado a gestionar el proceso, así como un objeto al que adjuntarlo.
  1. En Hierarchy, crea un Empty object (Objeto vacío) llamado «SpawnManager».
  2. Crea un nuevo script llamado «SpawnManager», adjúntalo al gestor de generación y ábrelo.
  3. Define public GameObject[ ] animalPrefabs;
  4. En el Inspector, cambia el tamaño del arreglo para que sea igual a la cantidad de animales, luego asigna los animales arrastrándolos desde la ventana Project hacia los espacios vacíos.

    Nota: asegúrate de arrastrarlos desde la ventana Project , no desde Hierarchy. Si vas a generar objetos, debes asegurarte de que estás usando Prefabs, que se guardan en la ventana Project.

2. Genera un animal cuando se pulsa la tecla S

Hemos creado un arreglo y le hemos asignado nuestros animales, pero eso no sirve de mucho hasta que tengamos una forma de generarlos durante el juego. Vamos a crear una solución temporal para elegir y generar los animales.
  1. En Update(), escribe una sentencia if para posicionar un nuevo animal Prefab en la parte superior cuando la tecla S se pulsa.
  2. Define una nueva variable public int animalIndex e incorpórala en la llamada. Coloca una instancia y haz una prueba editando el valor en el Inspector.

3. Generar animales aleatorios desde el arreglo

Podemos generar animales pulsando la tecla S, pero al hacerlo solo se genera un animal dentro del índice del arreglo que especifiquemos. Tenemos que aleatorizar la selección para que la tecla S pueda generar un animal aleatorio basado en el índice, sin nuestra especificación.
  1. En la sentencia if que comprueba si se pulsa S, genera un int aleatorio en animalIndex entre 0 y la longitud del arreglo.
  2. Elimina la variable global animalIndex, ya que solo se necesita localmente en la sentencia if.

4. Establece al azar la ubicación de la generación

Podemos pulsar S para generar animales aleatorios desde animalIndex, pero todos aparecen en el mismo lugar. Tenemos que aleatorizar su ubicación de generación, para que no avancen por la pantalla en línea recta.
  1. Reemplaza el valor de X para Vector3 por Random.Range(-20, 20), luego haz una prueba.
  2. Dentro de la sentencia if, crea Vector3 spawnPos como una variable local.
  3. En la parte superior de la clase, crea una nueva variable privada float para spawnRangeX y spawnPosZ.

5. Cambia la perspectiva de la cámara

Nuestro Spawn Manager está progresando muy bien, así que vamos a tomarnos un descanso y a jugar con la cámara. Cambiar la perspectiva de la cámara puede ofrecer una visión más adecuada para este juego de vista superior.
  1. Alterna entre Perspective e Isometric en Scene View (Escena) para apreciar la diferenci.a
  2. Selecciona la cámara y cambia Projection de «Perspective» a «Orthographic».

6. Resumen de la lección

Nueva funcionalidad

  • El jugador puede pulsar la tecla S para generar un animal
  • La selección de animales y ubicación de generación son aleatorias
  • Seleccionar el modo de proyección (Perspective/Orthographic)

Nuevos conceptos y habilidades

  • Spawn Manager
  • Arreglos
  • Códigos clave
  • Generación aleatoria
  • Variables locales frente a globales
  • Perspective frente a proyecciones Isometric

Siguiente lección

  • Utilizar colisiones para alimentar a nuestros animales

Complete this Tutorial