‫Entonces nuestro objetivo es poder disparar proyectiles y obtener un efecto de explosión cuando el
‫proyectil golpea algo, incluso cuando golpeamos la torre enemiga y cuando los proyectiles de la torre enemiga nos golpean.
‫Hola y bienvenido de nuevo.
‫Ahora echemos un vistazo a nuestro plan de secciones y veamos hasta dónde hemos llegado.
‫Ahora sabemos que hemos creado un tanque.
‫Puede moverse por todo el mundo.
‫Hicimos una clase de torreta enemiga.
‫Agregamos funcionalidad de fuego y proyectiles junto con daño a la salud y destrucción en nuestro juego.
‫Ahora tenemos condiciones ganadoras y perdedoras y las mostramos con widgets en nuestro HUD.
‫Ahora, el último elemento es agregar nuestros efectos especiales, lo que significa que necesitamos algo de humo detrás
‫de nuestro proyectil, así como algunas explosiones y sonidos.
‫Y habrá un par de cosas más que agregaremos para darle vida a nuestro juego y hacer que se vea
‫un poco más pulido.
‫Ahora, en este video, vamos a manejar algunas partículas de impacto.
‫Estos son efectos especiales para cuando el proyectil golpea algo.
‫Esto va a involucrar algo llamado un sistema de partículas.
‫Así que volvamos al editor y echemos un vistazo a los sistemas de partículas que tenemos en nuestro proyecto.
‫Así que estoy aquí en el editor.
‫Voy a ir a la carpeta de activos y efectos y aquí tenemos tres efectos.
‫Estos se llaman sistemas de partículas.
‫Ahora tenemos un efecto de golpe, un efecto de muerte y un rastro de proyectil.
‫Ahora sigamos y hagamos doble clic en p hit effect y verás que aquí tenemos un editor de sistema de
‫partículas.
‫Y en esta pequeña ventana, veremos que esta explosión ocurre una y otra vez.
‫Ahora, afortunadamente, este sistema de partículas ya ha sido creado para nosotros y parece una pequeña
‫explosión agradable.
‫Y nos gustaría ver que esta explosión ocurra tan pronto como el proyectil golpee algo.
‫Así que ese es nuestro objetivo para este video.
‫Así que aquí en el código de V, me gustaría volver a nuestra clase de proyectiles.
‫Así que vayamos al proyectil H y voy a agregar una variable a esta clase y será un
‫sistema de partículas.
‫Ahora, esta puede ser una variable privada y el tipo será U.
‫Sistema de partículas y va a ser un puntero y podemos llamarlo partículas de impacto.
‫Ahora voy a reenviar declarar esto y también voy a darle una nueva propiedad.
‫Así que digamos que es propiedad y quiero hacer esto en cualquier lugar para que podamos establecer esto desde el
‫plano para nuestro proyectil.
‫Y mientras estoy en eso, voy a darle a esto una categoría y lo colocaré en la categoría
‫de combate, ya que está relacionado con nuestras otras variables de combate.
‫Ahora, esto se puede editar en cualquier lugar porque planeamos configurarlo desde dentro del modelo para que podamos seguir
‫adelante y compilarlo.
‫Ahora regresemos al editor y voy a cerrar mis otros planos e ir a nuestra carpeta de
‫actores aquí en planos.
‫Actores, aquí está nuestra B. PAGS. proyectil.
‫Abramos eso y abramos el editor de planos completo.
‫Ahora, echemos un vistazo a los detalles.
‫Panel.
‫Recuerde, se debe seleccionar el propio proyectil BP para ver estas variables generales.
‫Y aquí está nuestra sección de combate y vemos partículas golpeadas.
‫Ahora aquí tenemos un menú desplegable y podemos seleccionar sistemas de partículas.
‫Dado que esta variable es de tipo sistema de partículas, vamos a utilizar el efecto de golpe para nuestras partículas de golpe.
‫Así que ahora tenemos una variable y su valor se establece aquí en el plano del proyectil.
‫Así que vamos a compilar y guardar esto.
‫Ahora, el siguiente paso es generar este sistema de partículas tan pronto como hayamos golpeado algo, lo que significa que
‫el golpe es la función perfecta para hacer esto ahora que necesitamos saber cómo generar partículas y usar el
‫juego.
‫La estática tiene una función útil para eso.
‫Se llama emisor de generación en la ubicación y dice que reproduce el efecto especificado en la ubicación y
‫rotación dadas.
‫Dispara y olvida.
‫Esto es bueno porque no tenemos que preocuparnos por eliminarlo o eliminarlo.
‫Simplemente activamos esta función.
‫Genera el sistema de partículas y se encarga de limpiarlo por nosotros, lo cual es genial.
‫Así que echemos un vistazo a la sintaxis ahora.
‫Hay una serie de parámetros de entrada, pero esta función tiene una serie de sobrecargas.
‫Ahora, dado que hay varias versiones de esta función, vayamos al código de V y echemos un vistazo
‫a esas diferentes versiones.
‫Ahora voy a abrir el CP del proyectil y echar un vistazo a la función de impacto.
‫Ahora, aquí abajo, en la parte inferior, voy a escribir el emisor de generación de estática del juego en la ubicación y tan pronto como escriba
‫los paréntesis de apertura, aparecerá una ventana emergente que me mostrará los parámetros de entrada que
‫necesito pasar.
‫Pero vemos una de tres, lo que significa que hay tres versiones diferentes de esta función.
‫Tres sobrecargas.
‫Voy a hacer clic en la flecha hacia abajo dos veces para ver esta sobrecarga en particular.
‫Ahora toma un objeto de contexto mundial, un sistema de partículas y una ubicación, y tiene los parámetros de entrada restantes.
‫Valores predeterminados, por lo que son opcionales.
‫Observe que el parámetro de rotación se establece en cero rotador.
‫Ahora, si queremos, podemos establecer la rotación de los emisores en la rotación del actor pasando obtener
‫rotación activa.
‫No es demasiado importante, pero me gustaría generar el emisor con la misma rotación que el actor.
‫Así que me gustaría usar la rotación activa y pasar eso.
‫Pero el resto de estos parámetros son opcionales.
‫Entonces, como sabemos que necesitamos llamar al emisor de generación en la ubicación para reproducir un sistema de partículas, podemos hacerlo
‫en la función de golpe.
‫Sabemos que el primer parámetro es un objeto de contexto mundial y ya sabemos cómo manejarlo.
‫Sabemos que se necesita un sistema de partículas y tenemos una variable de sistema de partículas que podemos pasar.
‫También sabemos que necesitamos una ubicación y una rotación, y sabemos cómo obtenerlos para un actor dado usando obtener la ubicación
‫del actor y obtener la rotación del actor.
‫Entonces, dado que tiene toda esta información, me gustaría que use el emisor de generación de función de estática de
‫juego U en la ubicación en la función de impacto para la clase de proyectil.
‫Entonces, pasando esto por el objeto de contexto mundial, pasando el sistema de partículas en sí, esa nueva
‫variable de partículas de impacto que creamos y usamos la ubicación de proyectiles usando obtener ubicación activa y usamos la
‫rotación de proyectiles usando obtener rotación de actor.
‫Pause el video y genere el emisor en la función de golpe ahora.
‫Bueno.
‫Así que voy a eliminar esta línea que usamos solo para echar un vistazo a las sobrecargas de funciones para
‫esta función.
‫Y voy a colocar esto justo antes de que destruyamos al actor.
‫Entonces, si lo colocó, digamos, al final de la función, está bien.
‫El desafío quedó abierto para ti.
‫Pero vamos a colocar esto justo antes de que destruyamos al actor, porque si destruimos al
‫actor, entonces no tiene sentido generar partículas después de eso.
‫Así que vamos a hacer esto antes de destruir al actor.
‫Así que vamos a decir que las estáticas del juego generan un emisor en la ubicación y primero necesitamos nuestro objeto de
‫contexto mundial, que será este.
‫A continuación, necesitamos nuestras partículas de impacto seguidas de la ubicación de nuestros actores, para lo cual vamos a usar la
‫ubicación del actor.
‫A continuación, vamos a pasar la rotación para la que usaremos obtener la rotación del actor y ahora estamos generando el
‫emisor en la ubicación.
‫Ahora, una cosa que me gustaría señalar es que si mi propietario es un puntero nulo y salimos de esta función
‫antes de tiempo, bueno, podría ser una buena idea simplemente destruir el proyectil allí.
‫Así que me gustaría eliminar esta declaración de devolución y darle a esta declaración si su propio cuerpo aún regresará.
‫Pero justo antes de que regresemos, deberíamos estar destruyendo al actor.
‫Así que voy a llamar a destruir aquí en este si marca.
‫Y, de hecho, incluso si fallamos en todos los otros controles aquí, al verificar al otro actor, no queremos
‫un proyectil que permanezca en el mundo.
‫Así que deberíamos mover esta segunda llamada a destroy fuera del control if.
‫De esa manera, estamos destruyendo el proyectil cuando golpea algo, pase lo que pase.
‫De esa manera, no tenemos proyectiles persistentes por ningún motivo.
‫¿De acuerdo?
‫Y mientras estamos seguros, debemos notar que estamos usando partículas de impacto aquí, lo que significa
‫que debemos verificar si las partículas de impacto están configuradas antes de intentar usarlas.
‫De lo contrario, podríamos estar usando una variable de partículas de impacto que no se ha establecido y no deberíamos usar punteros
‫nulos.
‫Así que vamos a colocar una verificación de si aquí para ver si las partículas golpeadas son válidas y, si lo son, entonces
‫es seguro llamar al emisor de generación en la ubicación aquí.
‫Está bien.
‫Avancemos y compilemos esto ahora.
‫Y con una compilación exitosa, volveremos al editor y aquí está el proyectil BP.
‫Hemos configurado nuestras partículas de impacto, así que asegúrese de que esté configurado antes de probarlo.
‫De lo contrario, no veremos nada.
‫Y si le damos al play, podemos esperar a que aparezca nuestro widget de inicio y luego boom, échale un vistazo.
‫Tenemos nubes de humo.
‫Hemos golpeado partículas que se generan.
‫Voy a seguir adelante y disparar a nuestros enemigos y veremos que se generan cuando golpeamos
‫a los enemigos también.
‫Perfecto.
‫Entonces, en resumen, ahora hemos generado algunas partículas de impacto.
‫Tenemos explosiones cuando nuestros proyectiles golpean algo en el mundo.
‫Y el siguiente paso es tener un rastro de humo detrás del proyectil mientras vuela por el
‫aire.
‫Y nos encargaremos de eso en el próximo video.
‫Te veré pronto.