Proyectil mágico con colisión en Unity

Resumen

Crear un disparo mágico que colisione y reaccione con objetos sólidos en Unity es uno de los efectos más útiles para videojuegos de acción y fantasía. Aquí aprendes a configurar un Particle System que dispara un proyectil con dirección, gravedad y detección de impacto, listo para integrarse en cualquier escena.

¿Cómo se prepara la escena para probar el disparo?

Antes de tocar las partículas, necesitas un entorno mínimo que te permita ver el comportamiento del proyectil al chocar.

Dentro de Unity, crea una escena nueva y agrega dos cubos: uno funcionará como pared y otro como piso [0:30]. Estos objetos sólidos te servirán como referencia visual para validar la colisión más adelante.

Después, genera un nuevo Particle System y nómbralo Magic Projectile. Este será el corazón del efecto.

¿Cómo se le da dirección y forma al proyectil mágico?

La clave para que una partícula se comporte como disparo está en el módulo Shape, que define desde dónde y hacia dónde salen las partículas.

Dentro de Shape, selecciona la forma de cono porque te da una dirección clara hacia donde apunta tu disparo [1:10]. Reduce el ángulo para que coincida con el radio y deja un valor pequeño, alrededor de 0.1, simulando el cañón de una pistola o fusil. El cono se transforma en un tubo angosto por donde viajará el proyectil.

¿Para qué sirve el módulo Shape en un Particle System? Define la geometría desde la cual se emiten las partículas y la dirección inicial. Un cono angosto convierte la emisión en un disparo dirigido.

Luego ajusta el tiempo de vida a 2 o 3 segundos y baja la tasa de emisión a cero. Eso último es intencional, porque el disparo no debe ser un chorro continuo.

¿Cómo emitir solo una partícula por disparo con Burst?

La sección Burst dentro del mismo módulo de emisión permite generar una cantidad exacta de partículas en el instante en que le das play [2:15].

A diferencia de la emisión por tiempo, Burst dispara todo en un mismo frame. Haz clic en el botón de más, deja el contador en 1 y tendrás un único proyectil cada vez que reinicias el sistema. Si pusieras 30, las 30 partículas se generarían apiladas en la misma posición.

¿Cómo controlar la velocidad del disparo sin deformarlo?

Aquí está el truco que evita confusiones. Si subes la velocidad directamente, el tubo del cono se estira visualmente.

La solución limpia es usar el módulo Simulation Speed, ubicado en la primera sección del Particle System [3:25]. Este parámetro multiplica la velocidad de simulación completa. Subirlo a 5 hace que el proyectil viaje rápido sin alterar el resto de la configuración.

Para darle realismo, activa Gravity Modifier con un valor bajo, alrededor de 0.15, para que el disparo caiga ligeramente como si tuviera peso real [4:00].

¿Cómo hacer que el proyectil colisione con paredes y piso?

Un disparo sin colisión atraviesa todo. Para que reaccione con el entorno necesitas activar el módulo Collision del sistema de partículas.

Primero, conecta una textura al proyectil. Crea un material nuevo, llámalo Plasma, asígnale un shader Unlit y elige una textura tipo Flare en modo transparente y aditivo [4:50]. Esto le da el brillo mágico característico.

Luego activa el módulo Collision y cambia el campo Type a World [5:30]. Con esto, la partícula reconoce todos los objetos del mundo como obstáculos. Al darle play, el proyectil rebota contra la pared como si fuera una pelota.

¿Qué hace el modo World en las colisiones de partículas? Permite que las partículas detecten y reaccionen ante cualquier collider presente en la escena, sin necesidad de configurar planos manualmente.

¿Cómo lograr que el disparo muera al impactar?

Rebotar está bien para una pelota, pero un disparo mágico debe destruirse al chocar. Para eso existe el parámetro Max Kill Speed dentro del módulo de colisión [6:40].

Este valor define que si la partícula impacta con una velocidad superior al número indicado, muere en el momento del choque. Si tu proyectil viaja a velocidad 5 y pones 0 en Max Kill Speed, cualquier colisión lo destruye al instante.

Un detalle útil: si pasas el mouse sobre cualquier parámetro del Particle System, Unity muestra una leyenda explicando qué hace esa variable. Es la forma más rápida de aprender el sistema sin salir del editor.

¿Qué cuidar al posicionar el proyectil mágico?

Un error común es generar el disparo demasiado cerca de un objeto sólido. Como la colisión se evalúa desde el primer frame, la partícula muere antes de salir.

Para evitarlo:

  • Coloca el emisor lejos de paredes o pisos.
  • Apunta la dirección del cono hacia espacio abierto.
  • Desactiva el looping si solo quieres un disparo por play.
  • Aumenta temporalmente el lifetime para depurar trayectorias.

Con estos ajustes tienes la base de un sistema de disparo funcional, con dirección, gravedad y detección de impacto. ¿Qué tipo de proyectil mágico vas a crear con esta técnica? Cuéntame en los comentarios cómo lo personalizaste.