‫Entonces, el objetivo de este video es tener proyectiles que realmente se lancen por el aire y se
‫comporten como deberían hacerlo.
‫Oye, bienvenido de nuevo.
‫En este video, nos preocupamos por hacer que nuestro proyectil se comporte como un proyectil y se mueva.
‫Ahora, hay diferentes maneras de manejar esto.
‫Una forma es establecer manualmente la ubicación y la rotación del proyectil nosotros mismos.
‫Ahora, esto generalmente requeriría que hagamos la actualización en cada cuadro, por lo que probablemente colocaríamos esto en
‫la función de marca.
‫Otra forma es simplemente agregar un impulso al proyectil y dejar que el motor de física se haga cargo.
‫Esencialmente, estamos aplicando una fuerza y lanzando ese proyectil y dejando que la gravedad haga lo suyo, y
‫el proyectil simplemente volará por el aire.
‫Ahora, otra forma sería usar un componente de movimiento.
‫Ahora, este es un tipo especial de componente que agregaríamos a nuestra clase de proyectil.
‫Y después de establecer algunos parámetros en el componente de movimiento, el componente de movimiento manejará
‫el movimiento del actor.
‫Ahora sucede que Unreal Engine tiene un tipo de componente incorporado hecho específicamente para proyectiles.
‫Esto aprovecha algunas de las funciones integradas de Unreal Engine.
‫Y al hacer esto, permitimos que el componente de movimiento maneje el movimiento por nosotros en función de la configuración
‫que proporcionamos.
‫Así que este es el método que vamos a utilizar.
‫Así que nos gustaría agregar un componente de movimiento de proyectiles a nuestra clase de proyectiles, y esto es lo
‫que manejará el movimiento del objeto de proyectiles.
‫Entonces, a medida que generamos un proyectil en el mundo, el componente de movimiento de proyectil que pertenece a la clase de
‫proyectil, se puede configurar y personalizar en función de las variables en la clase de movimiento de proyectil que
‫configuramos.
‫Ahora vamos a establecer un par de ellos, como su velocidad inicial y su velocidad máxima, y el componente
‫de movimiento del proyectil realmente moverá el proyectil en el mundo por nosotros.
‫Ahora, aquí está la página de documentación de Unreal Engine para usted.
‫Componente de movimiento de proyectiles.
‫Este es el componente que nos preocupa y verá que dice Componente de movimiento de
‫proyectil actualiza la posición de otro componente durante su tic.
‫De forma predeterminada, moverá el componente de ruta.
‫Ahora aquí está la inclusión.
‫Y si continúa desplazándose hacia abajo, verá algunas de las variables que se pueden configurar en el componente
‫de movimiento.
‫Así que desplácese por esto y eche un vistazo y vea cuáles son las opciones.
‫Ahora agregamos un componente de movimiento de proyectiles a nuestra clase de la misma manera que agregaríamos cualquier otro componente,
‫lo que significa que ya sabe cómo hacerlo.
‫Entonces, su desafío es ingresar a la clase de proyectil y agregar una variable de puntero de componente de movimiento
‫de proyectil y exponer esto haciéndolo visible en cualquier lugar.
‫Y de esa manera podemos editar fácilmente el componente de movimiento de proyectiles desde dentro de los planos.
‫Ahora vas a construirlo en el constructor de proyectiles usando crear un subobjeto predeterminado.
‫No olvide incluir el encabezado adecuado y establecer las variables de velocidad inicial y velocidad máxima del componente de
‫movimiento del proyectil.
‫Ahora elija sus propios valores para estos y configúrelos en el constructor y luego pruebe el juego.
‫Vas a ajustar la velocidad inicial y la velocidad máxima en el panel de detalles seleccionando el componente en
‫el plano del proyectil.
‫Y esto le dará un poco de experiencia ajustando parámetros y experimentando como desarrollador.
‫Así que pausa el video y crea el componente de movimiento de proyectiles ahora.
‫Bueno.
‫Así que estoy aquí en el proyectil H y probablemente agregó su componente en la sección privada.
‫Entonces, si lo hiciste, tienes los instintos correctos.
‫Vamos a hacer de esto una variable privada.
‫Esta bien.
‫Si no lo hizo, puede moverlo fácilmente a la sección privada si lo desea.
‫Ahora, este será un componente de movimiento de proyectiles U, y eso es un puntero.
‫Y podemos simplemente llamar a este componente de movimiento de proyectiles.
‫Ahora, le daré una propiedad U y simplemente lo haré visible en cualquier lugar.
‫Ahora, probablemente le diste una categoría.
‫Si no, está totalmente bien, pero le daré una categoría y lo llamaré movimiento.
‫Así que tenemos el componente de movimiento de proyectiles.
‫Voy a omitir la declaración de avance y ver si puedo compilar ahora aquí
‫en proyectil CP, voy a incluir el archivo de encabezado.
‫Volviendo a la página de documentación, voy a copiar este include y simplemente pegarlo aquí en proyectil.
‫Y ahora estoy listo para construir mi componente.
‫Así que voy a decir componente de movimiento de proyectiles y voy a usar crear un subobjeto
‫predeterminado y el tipo será su componente de movimiento de proyectiles.
‫Y para el texto, simplemente voy a llamar así a este componente de movimiento de proyectiles.
‫Ahí está mi punto y coma y ahí lo tenemos.
‫Ahora, según las instrucciones, vamos a establecer el movimiento del proyectil, la velocidad máxima del componente, y le daré una velocidad inicial
‫de, digamos, 1300 F. Esto es algo con lo que experimentaremos y, a través de las pruebas de
‫juego, lo ajustaremos al valor correcto
‫Ahora voy a establecer la velocidad inicial del componente de movimiento del proyectil, y lo estableceré en el mismo valor.
‫Entonces, la velocidad inicial será qué tan rápido es el componente del proyectil cuando comienza.
‫Y, por supuesto, nunca superará la velocidad máxima.
‫Sigamos adelante y compilemos esto.
‫De acuerdo, recibo un error de compilación y, si subo, veré que hace referencia al proyectil h.
‫Volvamos al proyectil H y dice Proyectil H 27.
‫Se refiere a la línea 27 y esa es esta línea de aquí.
‫Y obtenemos que este componente de movimiento de proyectil no es miembro de un proyectil.
‫Recuerde, este fue el tipo de error que vimos cuando no reenviamos la declaración.
‫Entonces podemos reenviar fácilmente declarar esto con la palabra clave class y compilar nuevamente y obtendremos una
‫compilación exitosa.
‫Entonces, nuevamente, así es como podemos saber si un componente en particular está incluido o no de manera predeterminada.
‫Y vimos que esto no es así con una compilación exitosa.
‫Volvamos al editor.
‫Bien, estoy de vuelta en el editor y voy a entrar en planos y actores y aquí está el proyectil BFP.
‫Así que aquí proyectil NP.
‫Ahora veo que el componente de movimiento de proyectiles está aquí.
‫Y en el panel de detalles, puede ver debajo del proyectil que tenemos la velocidad inicial y la velocidad máxima
‫y puede desplazarse y ver muchos otros parámetros que también podemos configurar.
‫Así que juguemos a probar esto.
‫Voy a darle al play y al clic izquierdo y comprobarlo.
‫Nuestros proyectiles se están moviendo.
‫Están volando por el aire y se detienen una vez que golpean algo.
‫Ahora, eventualmente lo que nos gustaría hacer es hacer que exploten y causen daño.
‫Pero este es un gran punto de partida.
‫Ahora movámonos dentro del rango de fuego y veamos si las torretas generarán un proyectil.
‫Y por supuesto que no.
‫Y la razón es porque tenemos esa subclase TW de variable.
‫Entonces, si se pregunta por qué las torretas no estaban generando proyectiles, es posible que no haya configurado
‫eso.
‫Así que sigamos adelante y entremos en estanques y emitamos pitidos, torreta y abramos el plano completo.
‫Editor Y colocamos la clase proyectil en la sección de combate.
‫Esta es nuestra subclase de, por lo que si configuramos esto en proyectil BP ahora, nuestra torreta también debería comenzar a
‫generar proyectiles.
‫Así que entremos en el campo de tiro y ahí lo tenemos.
‫Nos está disparando proyectiles.
‫Así que esto se ve increíble.
‫Así que ahora tenemos proyectiles.
‫Así que echemos un vistazo a nuestro plano de secciones.
‫Ya hemos creado un tanque que puede moverse por todo el mundo y ahora estamos manejando la entrada con las
‫teclas WASD y los clics del mouse.
‫Creamos una clase de torreta enemiga, la llamamos torre en C++ y agregamos funcionalidad de disparo
‫con proyectiles.
‫Ahora, a continuación, debemos manejar el daño a la salud y la destrucción en este juego.
‫Esos son nuestros próximos pasos y aparecerán en los próximos videos.
‫Entonces, ahora que hemos agregado un componente de movimiento de proyectiles, ahora tenemos proyectiles reales.
‫Los veré en el próximo video cuando comencemos a hablar sobre cómo podemos hacer que
‫estos proyectiles exploten y causen daños.
‫Te veré pronto.