‫Hola y bienvenido.
‫En esta lección vamos a presentar funciones miembro y obtener funciones normales y
‫seguras que nos permitirán obtener la dirección de un vector en particular.
‫Vamos a sumergirnos y ver cómo funciona esto.
‫Entonces, nuestro método simple para enviar la plataforma de regreso en la dirección opuesta está funcionando a las velocidades
‫a las que lo probamos.
‫Pero, ¿qué pasa si digo, Oye, hagamos que esta plataforma vaya diez veces más rápido?
‫Sigamos adelante, juguemos y veamos qué sucede.
‫Bueno, de repente esas plataformas saltan mucho hacia adelante y no se mueven alrededor de la misma
‫ubicación que antes.
‫Y la razón de esto es que la ubicación actual, cuando la configuramos como la ubicación de inicio, no
‫es necesariamente exactamente la distancia recorrida.
‫Podríamos habernos pasado y eso se captura aquí en la instrucción if.
‫Estamos diciendo que la distancia recorrida es mayor que la distancia recorrida, lo que significa que habremos
‫pasado.
‫Tenemos que haber sobrepasado para haber desencadenado esta instrucción if.
‫Pero la pregunta es ¿cuánto?
‫Y eso va a depender mucho de cuán grande sea el tiempo Delta.
‫Podemos sobrepasarnos en cantidades bastante grandes, especialmente si la velocidad de la plataforma es grande, lo que significa
‫que nuestra ubicación de inicio puede variar con el tiempo.
‫Puede que no se mantenga constante.
‫Entonces, la mejor manera de hacer esto sería calcular qué tan lejos debemos movernos desde la ubicación de inicio original
‫para llegar a la nueva utilizando la distancia de movimiento exacta.
‫Así que tratemos de visualizar este cálculo de ida y vuelta.
‫Estamos diciendo que tenemos una plataforma en su ubicación de inicio aquí.
‫Decimos que tiene una velocidad que podemos representar con una flecha que tiene una dirección y un tamaño, y también
‫tiene una distancia que queremos que se mueva, que está representada por esta llave aquí.
‫Ahora, lo que estamos diciendo es que nos gustaría averiguar el punto exacto donde la plataforma
‫estaría al final, no sobrepasada, sino exactamente la ubicación final.
‫Ahora, la forma en que podemos hacer esto es tomando la dirección de esa flecha de velocidad.
‫Entonces, en lenguaje vectorial, esto se llama normal de la flecha, y básicamente lo reduce a
‫un tamaño uno.
‫Entonces obtenemos la dirección pero un tamaño de uno.
‫Eso nos permite conocer este conteo, esencialmente el tamaño de la velocidad, qué tan rápido vamos.
‫Y luego, lo que podemos hacer es multiplicar esa dirección por la cantidad de nuestra distancia para darnos una
‫flecha que nos brinde todo el movimiento desde la ubicación inicial hasta la ubicación final.
‫Exactamente.
‫Así que echemos un vistazo a cómo podemos hacer esto en C++.
‫Lo que estamos buscando es una nueva ubicación de inicio.
‫Entonces, eliminemos cómo estamos haciendo esto actualmente y vamos a tener una ubicación de inicio igual a, bueno, ¿a
‫qué será igual?
‫Bueno, va a ser igual, en primer lugar, a la ubicación de inicio
‫más algo, porque comenzamos desde aquí y agregamos este vector verde para llegar al final.
‫Entonces, ¿qué es ese vector verde allí?
‫Bueno, ahí es donde necesitamos obtener la normalidad de la velocidad de la plataforma.
‫Y solo para que nos resulte más fácil de entender, voy a dividir eso en su propia variable.
‫Así que vamos a crear una nueva construcción de tipo efector, que voy a llamar la dirección de movimiento, solo
‫para dejar muy claro qué es lo que estamos tratando de almacenar
‫en él y luego vamos a obtenga esto del punto de velocidad de la plataforma, obtenga seguro, normal y luego algunos paréntesis al final.
‫Entonces, ¿qué está pasando aquí?
‫No hemos visto esto antes.
‫Hemos usado puntos para obtener las componentes del vector, X, Y y Z.
‫Esas eran variables.
‫Pero en C++ y en la programación orientada a objetos en general, también tenemos funciones que existen en las clases, por lo que
‫podemos usar el operador DOT para obtener una de ellas.
‫Hemos usado el colon colon cuando hemos estado tratando de sacarlo de la clase misma.
‫Pero cuando queremos hacer una operación con el vector real en sí mismo, por lo que el vector de velocidad de la
‫plataforma, podemos usar el operador de punto para obtener el vector normal del límite.
‫Eso es lo que estamos haciendo aquí, usando una función miembro en lugar de una variable miembro.
‫Así que tenemos el normal seguro de la velocidad de la plataforma y el punto y coma, el final de la línea
‫porque aquí tenemos una variable que esencialmente decimos que es la dirección del movimiento.
‫Así que ahora podemos usar eso en la línea subsiguiente para hacer una dirección de movimiento multiplicada por la distancia
‫de movimiento que está configurada porque queremos movernos exactamente hasta el final, no sobrepasarnos.
‫Y luego de que hayamos hecho eso, deberíamos mover nuestra plataforma a la ubicación final.
‫Así que vamos a hacer una ubicación de actor establecida para que sea la ubicación de inicio, porque de lo contrario nuestra
‫plataforma se habrá sobrepasado y pasado esa ubicación final porque la habremos actualizado con la ubicación actual, que es
‫la ubicación de sobrepaso.
‫Eso nos permite movernos exactamente hasta el punto final.
‫Y luego comience desde esa nueva ubicación de inicio.
‫Ahora es importante que actualicemos la velocidad de la plataforma después de hacer todo esto porque la
‫estamos usando para controlar las direcciones de movimiento.
‫Voy a actualizar la velocidad de la plataforma después de establecer la ubicación del actor.
‫Ahora volvamos a Unreal y hagamos clic en compilar y veamos si esto está arreglado.
‫El problema con nuestra plataforma moviéndose hacia adelante y hacia atrás.
‫Cerremos esta terminal y presionemos reproducir.
‫Y ahora, si echamos un vistazo, la plataforma se mueve rápidamente pero se mueve de manera confiable alrededor de la ubicación inicial
‫y final, como es de esperar.
‫Así que eso es todo lo que quería cubrir en esta conferencia, lo cual es correcto.
‫Un pequeño error que podría haber surgido en algunas de las configuraciones de nuestra plataforma.
‫Veré en la siguiente.