En esta conferencia, vamos a arreglar nuestro seguimiento de waypoints añadiendo un rastreador.
¿Verdad?
Así que para hacer eso, necesitas crear un objeto que va a seguir la pista alrededor y luego hacer que tu
tanque siga ese objeto.
Así que lo quieres como un rastreador de progreso súper preciso es lo que vamos a llamar que se mantiene en la
pista y luego los tanques realmente seguirlo en su lugar.
Así que ve a tu script y lo que vamos a hacer es crear un nuevo objeto de juego.
Así que en la parte superior vamos a declararlo como objeto del juego y lo llamaremos nuestro rastreador y luego crearemos
este rastreador abajo en el inicio.
Así que el rastreador va a ser igual al objeto de juego punto crear primitiva.
Ahora estoy creando un objeto primitivo para que puedas ver realmente donde está el rastreador en unity.
Por supuesto, no necesitas ver esta posición.
Es sólo un punto que se va a mover por el mapa, pero para que puedas visualizarlo.
Lo convertiremos, supongo, en una especie de objeto sólido.
Así que vamos a crear la primitiva de un cilindro.
Así que sólo tienes que seleccionar eso de la lista desplegable si estás en Visual Studio y luego queremos destruir inmediatamente
el colisionador que está en él.
Así que el punto de seguimiento obtiene el componente.
Collider.
Y asegúrate de que es una G mayúscula.
Para el objeto de juego, crea una primitiva, ¿verdad?
Lo siguiente que vamos a hacer es fijar su posición y rotación.
Así que rastreador punto transformar punto posición es igual.
Nuestro tanque.
Así que este punto se transforma en punto.
Posición y la transformación del rastreador de rotación.
La rotación del punto es igual a la rotación del punto de la transformación del punto.
Ahora el rastreador, queremos mover alrededor de la pista utilizando el método original que teníamos para mover el
tanque.
Así que vamos a crear un Rastreador de Progreso de Vacío, y este método realmente replicará lo que teníamos anteriormente.
Así que en primer lugar, va a probar la distancia del rastreador al waypoint, y ya tenemos ese código sentado aquí
abajo en la actualización.
Así que voy a copiar eso, así como la longitud del waypoint.
Así que copiemos eso de ahí y pongámoslo ahí abajo.
Y luego lo que vamos a hacer es realizar una mirada de nuevo para que sea perfectamente
ir hacia el árbol.
Así que ese sería el rastreador.
No te transformes.
Mira.
Y vamos a ver los waypoints del waypoint actual.
Para transformar.
Y luego también vamos a avanzar.
Así que rastreador punto transformar punto traducir cero cero y 0. 1.
Si esta velocidad aquí, usted puede modificar que sobre la base de lo rápido que desea que su rastreador para ir alrededor de la pista.
Pero lo que tienes que hacer es asegurarte de que tu tanque y tu rastreador no se alejen demasiado el uno
del otro.
De lo contrario, el tanque, que va a seguir el rastreador, no los puntos de ruta,
va a empezar a saltar fuera de la pista y tomar atajos, que es algo que definitivamente no quieres.
Muy bien.
Así que con ese código, vamos a bajar a nuestra actualización y vamos a deshacernos de esto porque
no vamos a usar eso de nuevo y vamos a poner aquí el progreso.
Trekker.
Y también lo haremos.
Comenta estas líneas de código sólo por ahora para que nuestro tanque no vaya a ninguna parte.
Es nuestro rastreador de progreso el que se va a mover.
Y como es el rastreador de progreso el que se está moviendo, cuando probamos la distancia para ir al siguiente waypoint,
en realidad es un rastreador para el que tenemos que probar la distancia.
Así que en el rastreador de progreso, asegúrate de que cambias a la posición de transformación del rastreador es menor de tres,
de lo contrario no va a continuar alrededor de la pista.
¿Verdad?
Así que guárdalo.
Volvamos a la unidad ahora.
Una vez dentro, puedes ver que ya lo he hecho.
Sólo he dejado un tanque verde activo.
Así que ve y selecciona todos estos otros tanques que tienes en la escena y sólo marca su casilla que está justo en la parte superior del
inspector, que sólo los apagará por ahora porque todos tienen
exactamente el mismo código en ellos.
Y pulsemos el play.
Veremos que el cilindro se crea y sale nuestro cilindro en su alegre camino alrededor de la pista.
Ahora, como está girando y mirando perfectamente a la palmera o al siguiente waypoint, siempre va a chocar
con él y sigue teniendo una distancia de tres porque está girando perfectamente hacia la posición de
la palmera.
Probablemente podrías bajarlo un poco más, para tener aún más precisión.
Bien, ya tenemos nuestro rastreador, ahora queremos que nuestro tanque siga ese rastreador.
De acuerdo.
Así que volvemos a nuestro código y ahora ni siquiera estamos mirando nada, así que podemos deshacernos de esa línea
que comentamos mucho antes.
Nuestra preocupación en Look at Waypoint es, en realidad, no mirar un waypoint.
Va a mirar el rastreador.
Así que quieres cambiar esto a rastreador aquí.
A continuación, podemos hacer nuestro sorbo de la rotación de nuestros tanques, que está bien, y luego podemos empujar nuestro tanque hacia adelante por
la velocidad.
De acuerdo, eso también está bien.
Así que guardemos eso y volvamos a Unity y echemos otro vistazo.
Vamos a crear nuestro cilindro que se va a mover a lo largo.
Y puedes ver que el tanque está ahora rodeando nuestro cilindro.
¿Por qué hace eso?
Bueno.
Se mueve mucho más rápido que el cilindro.
Por lo tanto, tenemos que hacer que nuestro cilindro se mueva más rápido que el tanque en nuestro código.
Así que el comprobador de progreso que hemos aprendido ahora tiene que ir al menos tan rápido como el propio tanque.
Así que pongamos la velocidad multiplicada por el tiempo, el tiempo delta aquí y digamos la velocidad, aumentémosla
un poco.
Así que está en la velocidad delantera más digamos dos así.
Y como no está girando en realidad, debería mantenerse por delante del tanque bastante bien.
Guárdalo.
Volvamos a jugar y echemos un vistazo a lo que obtenemos.
Así que el fuera de juego.
Ahora puedes ver que el tanque lo sigue muy bien.
Y eso no es tan malo.
Está tomando muchos atajos debido a la distancia real entre ellos.
Así que podrías cambiar esa distancia.
Así que es un poco más corto.
Ahora bien, ¿qué sucede si su cilindro termina yendo demasiado rápido para su tanque?
Así que si el tanque es golpeado por otro vehículo y termina muy lejos de él, podría, en lugar
de volver a la pista, tomar un atajo directamente a través de la pista real.
Volvamos aquí y aumentemos la velocidad.
Hagamos que sea, digamos, 20 más rápido que el tanque y volvamos a ejecutarlo y veamos el resultado
de tu tanque rodeando estos árboles.
De acuerdo.
Así que ahora puedes ver que el tanque está tomando enormes atajos alrededor de los árboles porque
este rastreador se está adelantando mucho.
Así que en realidad queremos reducir el rastreador de llegar demasiado lejos por delante del tanque.
Sí.
Así que volviendo al código, lo que vamos a hacer en la parte superior es crear otro float público
y lo llamaremos look ahead.
¿Y vamos a decir hasta dónde vamos a dejar que el rastreador se adelante al tanque?
Así que digamos que es diez, diez, que es mi valor a seguir.
Y luego en el rastreador de progreso, no vamos a dejar que se mueva más a menos que esté dentro
de diez del propio tanque.
Así que vamos a hacer otra prueba de distancia aquí si vector tres puntos de distancia entre el rastreador.
No transforme la posición y este punto transforme la posición del punto mayor que mirar hacia adelante y un retorno fácil
de eso.
Así que vamos a guardarlo.
Volvamos y echemos un vistazo a lo que obtenemos al pulsar el play.
Así que el caminante.
Ahora lo puedes ver y lo viste al principio.
Acerquémonos aquí y echemos un vistazo.
Es que se detendrá y esperará a que el tanque lo alcance.
Y eso lo has visto ahí.
Así que nunca, por muy rápido que hagas tu rastreador, va a llegar más allá del tanque, pero puedes
ajustarlo para que esté más lejos si quieres.
Así que ahora que tienes ese rastreador en el código, ahora va a estar en todos tus otros tanques.
Así que realmente puedes.
Ponga estos tanques en acción.
Y pulsa el play, y ahora no tendrás tanques que rodeen sus puntos de ruta porque están siguiendo esta especie de
rastreadores perfectos.
Lo último, por supuesto, que tienes que hacer ahora es volver a tu código
y asegurarte de que ese cilindro no aparezca en la escena.
Así que aquí, lo que vamos a hacer es poner rastreador.
No te pongas en plancha.
El renderizador de malla habilitado es igual a false sólo para desactivarlo.
Ese cilindro para que no se vea.
Guárdalo y pulsa el play.
Y ahora tenemos un conjunto muy básico de puntos de paso, un circuito de puntos de paso y algunos vehículos diferentes
que van por ahí, incluyendo la física.
Hay un poco de deslizamiento y algunos de los vehículos están siendo golpeados fuera de lugar.
Pero eso es algo con lo que puedes experimentar ahora para cambiar los ajustes de la carrocería rígida, hacer que sea un vehículo
más pesado para que cuando se estrellen salgan realmente volando.
Incluso podrías eliminar las otras restricciones de física que tenemos para congelar la rotación
sólo para ver cómo funcionará.
Pero lo que tienes ahora es una buena forma de crear ojos que recorran un circuito de forma más creíble que los que se quedan
ahí dando vueltas alrededor de los waypoints.