Lo creas o no, a estas alturas del curso, tienes suficientes conocimientos matemáticos para
crear un tanque con piloto automático, lo que significa que puedes hacer que el tanque gire y se mueva hacia el bidón de combustible o por
sí mismo.
Así que este es tu reto.
Me gustaría que programaras en él.
Así que si pulsas la tecla T, se enciende el piloto automático que hará que el tanque navegue por sí mismo hasta el depósito de combustible.
Por lo tanto, no se olvide el ángulo, la velocidad, el movimiento que usted necesita para tener el tanque de
prueba, si los tanques en realidad llegó a una cierta distancia de estar en el depósito de combustible en el que luego
debe parar, por supuesto.
Así que pon en pausa el vídeo ahora, vete y completa ese reto.
Y cuando volvamos, iré poniendo esto en común con vosotros.
Bienvenido de nuevo.
¿Cómo has conseguido que funcione?
Bueno, en primer lugar, vamos a empezar por trabajar en un método de piloto automático.
Así que pongamos el piloto automático nulo de esta manera.
Y lo que va a hacer es calcular el ángulo.
Así que calcula el ángulo.
Ahora recuerde que el ángulo de cálculo ya tiene esa capacidad de encaje, que está aquí abajo.
Así que tan pronto como ejecutemos esto, calculará el ángulo y girará hacia él, lo cual está bien, lo
dejaremos así por ahora.
La otra cosa que queremos hacer es empujar el tanque hacia adelante.
Esto va a girar el tanque y luego sólo tenemos que seguir empujando hacia adelante a lo largo de su eje y.
Recuerda que en este caso es la "Y" la que avanza.
Así que si seleccionamos nuestro tanque y pulsamos la tecla W, podemos ver que tenemos ese verde ahí, que es la parte más importante
para empujar las cosas hacia adelante.
Así que vamos a ir este punto trans forma de posición de punto y sólo podemos actualizar la posición con un nuevo vector tres
que se mueve la coordenada Y solamente.
Así que digamos cero y luego necesitamos un pequeño valor aquí.
Vamos a 0. 1 F para empezar con un cero así que lo empujará hacia adelante.
Ahora recuerda que ese vector de avance para el tanque es su eje y.
Bien, eso es una especie de piloto automático.
Ahora vamos a ir a la parte superior aquí y sólo añadir en un bool piloto automático es igual a falso inicialmente.
A continuación, vamos a bajar a nuestra fecha tardía y vamos a probar si el punto de entrada obtener el código de tecla abajo
punto t en este caso y que va a asegurarse de que tenemos un corchete extra allí.
Y luego aquí abajo, luego aquí abajo vamos a ir piloto automático es igual a no piloto automático, que se enciende y
se apaga.
Entonces fuera de aquí irá si piloto automático.
Así que si esto es cierto cada vez que esto se actualiza va a ejecutar el piloto automático así.
Bien, guarda esto.
Volvamos a la unidad y echemos un vistazo a lo que obtenemos aquí.
Así que vamos a pulsar el play y luego vamos a pulsar la tecla T y eso nos hará girar y empezar a mover
el tanque.
Así que T ahora lo que está sucediendo aquí es notar que el tanque está constantemente girando hacia el tanque de combustible y te darás cuenta de mis líneas de registro de depuración
están todavía en allí, que está creando patrones interesantes, pero se está moviendo de esta manera.
Eso es debido a la forma en que estamos añadiendo en el vector a la posición de nuestros tanques, porque en realidad estamos
añadiendo en un vector y a la posición del tanque.
Así que en realidad se va a mover en el espacio del mundo en lugar de añadir ese vector 010, que es este de aquí, en realidad queremos añadir
cualquiera que sea la dirección de orientación hacia adelante del tanque.
Ahora, recuerde, que va a ser el vector de subida en el caso del tanque.
Así que vamos a retocar un poco eso.
Así que de vuelta en nuestro código, si subimos a la parte superior aquí, vamos a en lugar de añadir el vector
de arriba, que es el vector del mundo o un vector orientado hacia arriba y hacia abajo, vamos a añadir a ella el punto
de transformación punto arriba, que usted sabrá por experiencia ahora que esto es una longitud de uno.
Así que si queremos incluir también una velocidad, añadiríamos otro flotador en la parte superior.
Y pongamos la velocidad en.
3. 1 si y entonces multiplicaríamos esto por la velocidad y también necesitamos multiplicarlo por
el tiempo, el tiempo delta si queremos tener en cuenta lo rápido que nos estamos moviendo realmente también.
Ahora la velocidad que estoy recibiendo error aquí porque en realidad tengo un tipo diferente de velocidad para nuestra
unidad, que fue cuando estamos conduciendo hacia adelante, vamos a llamar a esta velocidad T para la velocidad del tanque
sólo para deshacerse de ese error y vamos a guardar y echar un vistazo a lo que obtenemos ahora.
Así que pulsaremos el play y luego la T, que debería iniciarnos en el camino.
Bien, ahí vamos.
Ahora lo que pasa con esto es obviamente la velocidad.
Se nota que se mueve muy, muy levemente, pero vamos en la dirección correcta, pero sólo muy levemente
debido a eso multiplicado por 0. 1 para la velocidad.
Así que podemos arreglar eso fácilmente.
El otro problema, que verás una vez que pongamos esto a uno, es que tenemos esta cosa de vaivén para el
tanque, y eso es porque está tratando de conseguir perfectamente alineado con el tanque de
combustible real.
Así que ahora nos movemos un poco más rápido.
Probablemente podrías multiplicar eso por dos, pero puedes ver si nos acercamos un poco más que a medida que actualizamos
nuestro ángulo hacia atrás y hacia adelante, en realidad estamos yendo hacia atrás y hacia adelante como esta
cantidad en cada lado de ese vector hacia el combustible.
Este es un problema bastante común que se tiene con el uso de las matemáticas, que son muy precisas en una aplicación
como esta, porque al empezar a mover los objetos, los cálculos te dan valores precisos, pero no
necesariamente quieres valores precisos.
Y lo has visto cuando intentábamos mover nuestros cerdos hacia el aldeano o hacia un lugar de la meta.
Queremos que se produzca una especie de escenario en el que lo suficiente sea bueno.
No queremos que sea absolutamente perfecto.
Tampoco queremos que el depósito se desplace de golpe hacia el combustible.
Así que en su lugar vamos a añadir una velocidad de giro allí también, al igual que tenemos una velocidad de avance.
Muy bien.
Así que tenemos nuestra velocidad para nuestro tanque.
Ahora, vamos a hacer que, también, porque era un poco lento y entonces vamos a tener una velocidad de rotación
también.
Así que llamémosle nuestra velocidad.
Tenemos una velocidad de rotación para cuando estamos usando las teclas, que está aquí arriba, pero esto es para nuestro piloto automático.
Así que hagamos que sea 0. 5 F y, por supuesto, también se puede multiplicar por el tiempo delta en los valores
de rotación.
Pero no voy a poner eso aquí.
Pero puedes, así que bajamos a la rotación para nuestro sentido de las agujas del reloj y añadimos aquí nuestro valor de velocidad
para multiplicarlo allí.
La otra cosa que también tenemos que hacer es desconectar el piloto automático cuando nos acerquemos a nuestro combustible.
Así que lo haremos en nuestra actualización de LT.
Ya tenemos la capacidad de calcular la distancia.
Vamos a bajar aquí y lo que vamos a hacer aquí es ir si calcular la distancia y vamos a decir que si
ese umbral es menor que vamos a ir con dos en este punto, entonces vamos a ir piloto automático es igual a falso y sólo
apagarlo.
Calcular la distancia no devuelve nada por el momento, pero eso está bien.
Podemos arreglarlo.
Así que si subimos a calcular la distancia, podemos entonces devolver la distancia aquí.
Así.
De acuerdo.
Y asegúrate de que esto vuelve a flote.
Sí.
Así que digamos esto y probémoslo.
Así que lo que vamos a hacer es que nuestro tanque se mueva y gire un poco hacia el
combustible.
Y también va a apagar su piloto automático cuando llegue allí.
Así que si pulsamos la tecla T, verás ahora que vuelve.
Ahora está temblando un poco, no tanto como antes.
Y se podría incluso cambiar esa rotación, reducir la velocidad aún más.
También podrías hacer una especie de prueba como si el ángulo fuera mayor que lo que sea.
Entonces no te molestes en realizar un giro.
Así que deberíamos estar cerca de tener el piloto automático apagado en breve, cosa que no estamos haciendo, por supuesto.
Así que echemos un vistazo a nuestra consola.
Hagamos una pausa en esto y echemos un vistazo al valor de la distancia que se está poniendo aquí.
Así que esta es una situación perfecta en la que tendrás este tipo de problema de precisión.
Observa que la distancia es de 2. 00083.
Y yo dije, cuando es menos de dos, no es menos de dos.
Así que esto es lo exacto y cercano que pueden ser estos valores que pueden causarte problemas.
Así que digamos que menos de tres.
Así que volvamos a nuestro código.
Lo cambiaremos en nuestro piloto automático por menos de tres.
Y también pondré ese código de giro aquí para que sepas cómo podría funcionar.
Si llegamos, digamos, a calcular el ángulo, aquí es donde se produce nuestro giro.
Digamos que si el ángulo es mayor de diez grados, recordando que el ángulo está en radianes, tenemos que asegurarnos
de multiplicar eso antes de probarlo contra nuestro diez, que está en grados.
Entonces, nos volveremos.
Ahora esto es velocidad que tengo aquí.
Voy a volver a subir y a hacerlo un poco más pequeño para que puedas ver
el efecto de tenerlo más pequeño y que consigas un giro gradual en el objeto en lugar de sólo un ajuste para
enfrentarlo.
Bien, probemos esto.
Hay que recordar que al ir retocando estos valores, siempre podemos acabar con otras cosas
que se van a estropear, como la distancia a un objeto.
Y de hecho, permítanme golpear aquí.
¿Te has dado cuenta de cómo se ha ido dando la vuelta poco a poco?
Si vuelvo a pulsar T para desactivar el piloto automático y subo a esta vía para pulsar t, se da la vuelta.
Bien, en lugar de ir de un lado a otro.
Ahora, a medida que haces más difícil que el tanque gire de una sola vez, como si sólo pudiera hacer giros muy grandes
y empinados, si está muy cerca de un objeto, puede que nunca, nunca sea capaz de girar para estar lo suficientemente
cerca de un objeto, en cuyo caso terminarás con todo tipo de imprecisiones en el sistema.
Así que tenlo en cuenta.
Es posible que tenga que aumentar el umbral de distancia a la parada y se puede ver que mi tanque se ha detenido ahora.
Así que aumentar que a medida que el ángulo que un puede girar mayor también porque es sólo realmente agudo objetos de giro
que van a ser capaces de golpear el objetivo que a partir de entonces.
Así que ahora es el piloto automático apagado debería ser capaz de tipo de unidad de distancia y luego si puedo
golpear la tecla T de nuevo, verás que vuelvo y ajustar ligeramente cada vez que se sale ligeramente en ese ángulo y volver
a entrar hacia el combustible.
De acuerdo.
Así que hay una aplicación muy simple del piloto automático de las matemáticas que hemos estado aprendiendo en
esta sección.
Y lo creas o no, la IA que utilizamos en los juegos hoy en día se basa más o menos en lo que acabas de ver con unos cuantos retoques
más y muchas animaciones y efectos especiales y ese tipo de cosas.
Pero en realidad se trata de los vectores subyacentes y las matemáticas que hacen que estas cosas funcionen.