Contenido

Disparar a los enemigos

Disparar a los enemigos

Para poder disparar a los enemigos, tendremos que hacer lo siguiente:
  • Añadir un disparador al jugador.
  • Añadir la rotación al jugador, de modo que su disparador siga al movimiento.
  • Crear un prefab de disparo con un script para controlar cuánto duran los disparos y qué ocurre si impactan contra el enemigo
  • Crear el script que permite disparar

El disparador

Para añadir el disparador al jugador, bastará con añadir un cubo como hijo al jugador, llamado Disparador, similar al indicado en la figura. Fíjate bien en que el disparador apunta en la dirección Z positiva del Jugador. Esto será importante para que coincida con su rotación y los disparos salgan en la dirección adecuada.
Disparador

Rotación del jugador

Para añadir la rotación al Jugador, debemos añadir el siguiente código dentro del método Update() de NavJugador. Este código realizará una rotación suave en función del movimiento con las teclas.

Ver ejemplo de código

Aunque otra opción con resultado similar sería:

Ver ejemplo de código

En este punto, si ejecutas el juego el Disparador del Jugador debería apuntar en la dirección del movimiento.

El disparo

Como prefab de disparo vamos a crear un cubo de color azul claro, llamado Disparo, que incluya un Box Collider con la propiedad Is Trigger activada, así como un Rigidbody con la propiedad Use Gravity desactivada:
Disparo
Además, vamos añadirle un script llamado Disparo de modo que dicho objeto se destruya automáticamente a los 3 segundos, y que en caso de que atraviese a un Enemigo, se destruyan tanto el Disparo como el Enemigo:

Ver ejemplo de código

Por último, añade el objeto Disparo a la carpeta Prefabs y, a continuación, elimina el Disparo de la escena.

Control de los disparos

Para controlar cuándo debemos disparar, con qué frecuencia y con qué velocidad debe efectuarse el disparo, vamos a añadir el siguiente script DisparadorController al Disparador:

Ver ejemplo de código

Para finalizar, tan solo debes arrastrar el prefab de Disparo a la propiedad Disparo del componente DisparadorController del Disparador.