De acuerdo.
Bienvenido de nuevo.
Hemos puesto los coches.
Tenemos la colisión y el material de evasión allí.
Cuando has pulsado el play, ¿has acabado con un montón de coches como yo y con un rendimiento extraño de
las cosas?
Así que vamos a echar un vistazo.
Bien, voy a ponerlo en pausa.
Algunos coches se han librado de la colisión.
Algunos coches siguen intentando abrirse paso y algunos acabarán dando la vuelta.
Este coche es una preocupación.
Mira dónde terminó el pequeño rastreador.
¿Qué demonios ha pasado ahí?
Bueno, puedo decirte que lo que pasó fue un locus ovalado de código que se me ocurrió.
Así que vamos a arreglar eso primero con eso, porque los coches como que se atascaron, ¿verdad?
El rastreador de progreso terminó estando cerca del coche todo el tiempo o delante del coche.
¿Y qué pasa si estas dos líneas corren más de lo debido?
Pasar un determinado punto.
De acuerdo.
La pista de velocidad podría llegar a ser negativa.
Ahora lo que va a hacer es colocar el rastreador detrás del coche.
O en el otro caso aquí, si vamos en la otra dirección, también podría ponerlo un poco detrás del
coche si va demasiado rápido.
Así que para hacer eso, tenemos que poner una especie de pinza en este valor aquí.
Bien, entonces podemos poner la pista de velocidad menos es igual a uno y luego podemos poner si.
Rastrear una pala en este caso se convierte en menos que porque va en negativo.
¿Y cuál dirías que sería una velocidad lenta aceptable para el coche?
Bueno, digamos que algo así como dos.
Si obtiene menos de dos, porque si ha entrado en un menos, entonces obviamente está muy cerca de su coche real, lo que significa
que el coche no va muy rápido en absoluto.
Así que estaremos contentos con tenerlo a las dos.
Así que vamos a ponerlo así.
De acuerdo.
Y luego podemos tomar esta línea y podemos hacer algo muy similar aquí abajo si se hace más grande que
15, que es lo que estamos empezando con aquí.
Así que si se hace más grande que 15, entonces vamos a decir, vamos a ponerlo en 15.
Así que estos van a ser nuestro tipo de valores de umbral que va a detener esos valores que van detrás de los
coches.
Bien, guarda eso.
Volvamos a la unidad y pulsaremos el play para ver cómo nos ayuda un poco con esto.
Así que los coches están fuera y van a pasar en realidad algunos de ellos, creo, más esta vez porque sus rastreadores están todavía
en el principio.
Sí, ahora tenemos tres.
Tenemos una situación en la que hay algunas personas que están como atascadas.
Así que en este caso, quiero decir, eventualmente estos dos que puedes ver en la pantalla están luchando.
Eventualmente van a llegar a un punto en el que puedan continuar con este tipo aquí.
Ni siquiera está atascado contra nadie.
Acaba de golpear el neumático, así que no puede moverse.
Así que lo que tenemos que hacer es idear algún otro tipo de código de evasión que va a ayudar en la situación
en la que estos coches están atascados.
Ahora, estos otros coches que vienen por la esquina pueden ayudar a despegar a estos coches
sólo por el hecho de que posiblemente van a conducir hacia ellos si no los evitan.
Pero de todos modos, vamos a ver cómo podemos despegar estos coches.
Así que dejemos de pulsar el play.
De acuerdo.
Ahora, para que la siguiente parte funcione, necesitamos poner algunas barreras en nuestra pista y verás que he añadido algunas
barreras al azar.
Ahora este modelo de barrera se llama muro de barrera y si sólo arrastrar y soltar que en su proyecto, lo he puesto
dentro de mi carpeta de la pista de carreras justo allí.
Así que trae uno de esos a la escena.
Y lo que tienes que hacer con él es añadir un colisionador de cajas y te diré por qué en un momento cuando empecemos a
codificar.
Pero lo que pasa con este Colisionador de Cajas es que tiene que ir por aquí, ¿vale?
Así que tienes que duplicarlo y ponerlo alrededor del exterior.
Ahora también asegúrate de que está en el interior de donde estaba o está ese límite de la pista para que cuando los coches choquen contra el lateral,
choquen realmente con esta barrera.
Y tendrás que hacerlo ahí y en el otro extremo por ahí.
Ahora, una vez hecho esto, lo que vamos a hacer es programar los coches para que den marcha atrás si tienen problemas,
es decir, si han chocado con algo en la parte delantera y no pueden seguir adelante.
Básicamente han dejado de hacerlo.
Así que lo que vamos a hacer es poner ese código en nuestro vacío.
Guiones.
Así que abre tu guión del detector de evasión.
Y lo primero que vamos a hacer arriba es poner un valor bool para invertir.
Por lo tanto, la inversión de flotación pública es igual a falsa.
De acuerdo.
Ahora, aparte de eso, también necesitamos obtener el cuerpo rígido porque queremos comprobar la velocidad del vehículo.
Y básicamente vamos a decir que si la velocidad es una velocidad determinada o muy lenta, básicamente nada, entonces vamos
a invertir.
Bien, déjame hacer esto un bool ahora mismo.
Estableceremos que la inversión sea falsa si hemos salido de un punto de activación.
Así que la inversión es igual a falso.
Y también vamos a permitir que la marcha atrás funcione no sólo en los coches, sino también si hemos llegado a otras partes del
mundo.
Ahora, la razón por la que hice que pusieras esas barreras con colisionadores de caja fue porque los colisionadores
de caja funcionan con una estancia de activación, la estancia de activación no se activará.
Si el coche choca con esa barrera, tienes que tener esa caja cerrada.
Y ahora va a pasar lo mismo cuando nos encontremos con estos neumáticos.
Actualmente tienen colisionadores de malla en ellos.
Si quieres que se conviertan en objetos en los que si un coche estrella se atasca dé marcha atrás, entonces tendrás
que cambiarlos de colisionadores de malla a algo más simple, como un cilindro, o también puedes poner una caja alrededor
de ellos.
Así que tenlo en cuenta.
De acuerdo.
Así que lo que vamos a hacer con el código, en primer lugar, es que vamos a
tener una condición específica, es que si es un coche, deshacerse de la vuelta y vamos a poner todo esto dentro de paréntesis.
De acuerdo.
Ahora, aquí arriba.
Lo que queremos hacer es determinar dónde ocurrió la colisión.
Así que si el coche chocó con la parte trasera de otro coche, entonces va a hacer su cosa de evasión.
Pero el coche de delante, si es golpeado, puede seguir adelante.
Así que básicamente nos preocupamos por si chocamos con algo por detrás, entonces es cuando queremos
hacer la evasión, porque actualmente si los dos coches chocan entre sí, entonces vas a coger el coche de delante.
También haciendo algunas cosas de evasión que pueden hacer que se dé la vuelta y haga cosas raras que no
queremos.
¿Cómo podemos saber si un coche está delante de otro?
Déjenme mostrarles.
Así que, en primer lugar, calculamos el vector del coche que acabamos de golpear para poder hacerlo con una colisión.
Ah, y va a ser un punto de transformación punto inverso punto colisionador punto objeto de juego punto transformación
punto posición.
Así que vamos a obtener el vector desde el coche a lo que golpeó con el coche como el punto de origen.
Así que, básicamente, si el vector está orientado hacia arriba y, por lo tanto, tiene una especie de dirección X y Z positiva,
entonces debe haber golpeado algo que estaba delante de él y no algo que estaba
detrás.
Así que podemos usar eso como una condición aquí.
Así que vamos a ir.
Si Diagnóstico de Colisión es mayor que cero y Colisión Directa Z es mayor que cero, entonces lo que tenemos aquí está frente
a nosotros, ¿de acuerdo?
Y por lo tanto, podemos hacer nuestras cosas para evitar la colisión.
Así que déjame poner eso ahí dentro.
Ahora, la otra cosa que queremos hacer aquí es hacer lo contrario.
Así que si el cuerpo rígido punto velocidad magnitud es, digamos, menos de uno, que como apenas nos estamos moviendo,
entonces vamos a invertir es igual a la verdad.
Ahora estamos haciendo esto fuera de las pruebas para el coche porque realmente no nos importa lo que hemos golpeado.
Sólo queremos dar marcha atrás de todos modos.
Así que esto se convertirá en otra cosa justo aquí.
Vale, genial.
Así que ahora tenemos la marcha atrás encendida y apagada.
Hay que abordarlo dentro del código de nuestro controlador ocular.
Ahora, justo antes de terminar con este código, la otra cosa que necesitamos hacer es asignar este cuerpo
rígido y necesitamos un inicio en ese caso.
Así que queremos un comienzo vacío y luego podemos poner cuerpo rígido es igual a esto.
No te pongas el cuerpo rígido del componente.
Bien, guarda eso.
Ahora, probablemente veas que tengo este guión inverso aquí arriba.
No te preocupes por eso.
Sólo estaba probando algo.
No lo necesitas.
Vamos a entrar en nuestro controlador y vamos a entrar en nuestra actualización.
Bien, ya hemos conectado un void para poder usar un void.
Ahora, lo que vamos a hacer aquí con nuestros valores para nuestra aceleración y nuestra dirección es realmente
invertirlos.
De acuerdo.
Así que si piensas en ello, si has chocado con algo y quieres dar marcha atrás, vas a dar
marcha atrás en la dirección opuesta a la que realmente quieres acabar avanzando.
Y por supuesto, la aceleración es al revés.
Así que podemos poner rápidamente un poco de declaración if aquí e ir si un vacío invertir entonces.
Podemos decir que la aceleración va a ser lo que sea multiplicado por uno negativo, y entonces
nuestra dirección será igual, uno negativo por a.
Sólo allí y no un será.
S Así que eso es sólo invertirlo y sólo va a invertirlo si estamos haciendo una inversión particular.
Bien, guarda eso.
Ahora volvamos a Unity y echemos un vistazo.
Ahora, todos estos cambios van a hacer que tus coches no se atasquen tanto como antes.
Así que puede que tardemos unas cuantas vueltas en ver a algunos de ellos en acción.
De acuerdo.
Así que esto sucedió más rápido de lo que pensaba.
Vamos a ver si este coche hace una marcha atrás.
Sí, lo hace.
Así que se escabulló de allí.
Puede que tenga que hacer otra.
Bueno, ese también empezó.
Y están haciendo reversas para salir de su apuro, como puedes ver.
Genial.
Así que esto va a mejorar mucho su desplazamiento por la pista y su salida de los problemas.
Ahora los coches también pueden implementar diferentes mecánicas de dirección que realmente se relacionan con la flotación.
Vamos a ver el flocado en una sección posterior de este curso.
Así que siéntete libre de volver aquí y decir, cómo puedo implementar la flotación en mis coches, lo cual puedes, y entonces probablemente lo hagas
sin una gran cantidad de la física de colisión adicional que hemos estado poniendo aquí.
Pero la idea aquí era mostrarte cómo funciona la física de los vehículos en Unity.
Así que espero que lo hayan disfrutado.
Por favor, juega con él.
Hay tantas cosas diferentes y diferentes lógicas que puedes poner aquí para que estos coches funcionen.
Pero esto es definitivamente un buen comienzo para su aprendizaje en la mecánica del coche I.