En la clase anterior, comenzamos con el código para la huida, por lo que pudimos colocar un cilindro
en la escena.
Lo que vamos a hacer ahora es continuar con el código para eso y escribir el código que va a
ir dentro de la A. I. control para nuestros personajes.
En primer lugar, quiero que encuentres dónde pones a todos tus personajes.
Eso si los enrollas como yo.
Ahora los míos están bajo el bloque de la ciudad.
Tenemos que seleccionar todos los personajes.
Así que los turnos se seleccionan y luego nos aseguramos de etiquetarlos con el agente.
Así que poner un plus allí y el agente porque el código en el cilindro de caída en realidad tiene que agarrar todos nuestros personajes
para que puedan enviar un comando a ellos, básicamente.
Así que con eso hecho de nuevo, asegúrese de que sólo seleccionar todos estos y asegúrese de que añadir que la etiqueta en lugar
de sólo crear.
Bien, ya están todos ahí, ahora vamos a volver a nuestro controlador de IA.
Lo primero que queremos hacer es crear un método de reinicio que podamos ejecutar cada vez que un agente llegue a un
lugar de la meta.
Así que anule el agente de restablecimiento y vamos a mover algo del código de inicio aquí abajo.
Así que las cosas que queremos son nuestro multiplicador de velocidad, que será esta línea aquí, pero vamos a separarlo poniendo
ese flotador en la parte superior.
Así que la velocidad de flotación muda y luego vamos a tomar esta línea de código y en realidad estas dos líneas de código también.
Así que saca esos de ahí y ponlos aquí abajo y pondremos esto en malta rápida y pondremos esto
aquí en velocidad.
Molt.
Y, por supuesto, tenemos que transmitirlo también a los suyos.
Multiplícalo con la velocidad para nuestro agente.
De acuerdo.
Así que además de esas cosas también vamos a establecer nuestros desencadenantes para
es caminar y vamos a tomar esa y ponerla aquí abajo.
Eso es borrarlo de ahí.
Y finalmente en Reset, iremos a la ruta de restablecimiento del Agente Dot.
Ahora, este es un comando que pertenece a los agentes de la malla de navegación, lo que le permite tipo de restablecer
la ruta, básicamente, que es para detenerlos ir a lo largo de su camino actual y tipo de como limpiar donde
quiera que vayan fuera de su sistema.
De acuerdo.
Así que ahora que tenemos eso, podemos ponerlo en nuestro inicio.
Así que justo debajo de aquí, vamos a ejecutar el agente de restablecimiento así.
Bien, ahora bajemos y pongamos nuestro nuevo método.
Ese cilindro de caída va a llamar cuando un cilindro se cae.
Sí.
Así que aquí abajo, vamos a poner en este vacío público, detectar nuevo obstáculo y enviar en un vector tres para la posición
de ese obstáculo.
Y luego dentro de aquí vamos a ir si vector tres punto de distancia entre el agente por lo que la posición de este punto
de transformar.
La posición del punto es menor que nuestro radio de detección.
Ahora, eso es algo que tenemos que definir en la parte superior del código, lo que haremos en un momento.
Así que si estamos dentro del radio de detección, entonces vamos a huir de la posición.
Así que el vector tres.
La dirección de huida es igual a este punto.
Transformar la posición superior menos la posición que está siendo atravesada y vamos a normalizar eso, lo que lo establecerá
a una longitud de uno así que normalizado.
Y luego el vector tres nuevo gol.
Es igual a esta posición de transformación de punto más la dirección fli multiplicada por el radio fli.
Ahora es cuando queremos huir realmente del obstáculo que hemos detectado.
Así que vamos a crear estos dos objetos en la parte superior de nuestro código.
Así que queremos un flotador para el radio de detección que será igual, digamos, a cinco, y un flotador para el radio FLI,
que será igual a diez.
Bien, continuemos escribiendo este código aquí abajo.
Así que hemos creado una nueva ubicación de la meta a la que ir, que es de la posición de nuestro jugador o nuestro agente, más la dirección
fli multiplicado por un cierto radio para empujar hacia fuera.
Así que la ruta de la malla de navegación es igual a la nueva ruta de la malla de navegación.
Agente punto calcular ruta.
Nuevo objetivo.
Devuelve la ruta.
Y entonces vamos a decir que si el estado del punto de la ruta no es igual al estado del punto de la ruta de la malla nav en válido, entonces vamos a establecer
el carácter a lo largo de esa ruta.
Sí.
Así que volviendo a este código por un minuto, esta es nuestra funcionalidad de malla de navegación que está incorporada.
Así que vamos a en lugar de establecer el destino de un agente como lo hemos hecho antes aquí abajo,
vamos a agente establecer destino.
En primer lugar, estamos viendo si podemos calcular una ruta válida desde donde estamos hasta donde queremos estar, porque esa nueva
ubicación podría estar fuera de la malla de navegación y podría no ser posible.
Por lo tanto, no queremos que el agente vaya allí si no puede llegar a su OC.
Así que si pueden llegar hasta allí, la ruta no es inválida para nuestro agente, entonces iremos a agent
set destination y lo pondremos en path dot corners.
Trayectoria, esquinas de los puntos, longitud de los puntos menos uno y luego el año.
Dot set trigger se está ejecutando por lo que esto establecerá nuestra animación a y se está ejecutando la velocidad del punto del agente
será igual a diez en este punto y la velocidad angular del punto del agente, que es lo rápido que gira.
Vamos a ponerlo en 500 ahora porque lo vamos a poner ahí.
Tendremos que ponerlo a un valor menor cuando lo reiniciemos.
Porque cuando vuelvas a caminar entre las cajas de oro, no querrás darte la vuelta muy rápido como si
estuvieras huyendo de ellas.
Así que aquí arriba irá.
La velocidad angular del punto agente es igual a 120.
Bien, permítanme volver a este destino establecido.
Así que cuando obtenemos la ruta a través de aquí, lo que hace es que obtiene un montón de puntos
de ruta y los pega en una lista de ruta o una matriz llamada esquinas.
Y estas esquinas son nuestros puntos de ruta básicos desde nuestra posición actual hasta la última posición o la posición
de meta.
Así que la posición de la meta en esta lista va a estar al final de la lista, por lo que ponemos esto
aquí en los corchetes para indexarlo.
Muy bien.
Así que guardemos eso ahora.
Volveremos a entrar en el cilindro de caída porque tenemos que asegurarnos de que ejecutamos esa detección para cada agente abajo en nuestra
actualización donde ponemos eso aquí abajo.
Así que este es nuestro bucle for que va a través de cada agente.
Hemos etiquetado a todo nuestro agente.
Así que aquí abajo vamos a ir un punto obtener el componente que controle.
El punto detecta un nuevo obstáculo.
Y vamos a pasar por el punto de información de golpe así.
Así que esto enviará a través de la posición del cilindro a los agentes que luego huirá de ella.
Así que lo guardaremos.
Volvamos a la unidad y probemos esto.
Así que pulsamos el play y todo el mundo está deambulando por ahí.
Dejemos caer un cilindro.
De acuerdo.
Sin embargo, nadie parece inmutarse por el cilindro.
Hay algunas personas corriendo por ahí.
De acuerdo.
Así que esa chica, corrió alrededor y lejos del cilindro.
Bien, dejemos de jugar a esto.
Lo que me gustaría hacer, en primer lugar, es moverme a una mejor posición aquí arriba.
Así que vamos a dar la vuelta a eso y luego vamos a agarrar nuestra cámara y alinear a la vista para que podamos dejar caer
nuestros cilindros en un mejor lugar.
Así que alinea con la vista de la cámara.
Ahora vamos a volver a nuestro control y lo que vamos a hacer aquí para nuestro radio de detección
es sólo establecer que a 20 para aumentar la distancia de ver el cilindro porque si usted no ve el cilindro, entonces usted puede seguir
caminando hacia ella, supongo.
Bien, guardamos eso y vamos a ejecutar esto de nuevo y echar un vistazo.
¿De acuerdo?
Así que una vez que la multitud se pasea, podemos dejar caer un cilindro como aquí.
Y puedes ver que todos huyeron de él por aquí y que todos huyen de él y se vuelven absolutamente
locos.
Ahora tenemos que evitar que corran una vez que se han puesto a correr actualmente y luego siguen corriendo
y corriendo y corriendo.
Así que esto es un reto para ti.
¿Puedes averiguar cómo tenemos que modificar el código?
Y déjame darte una pista.
Sólo tienes que insertar una nueva línea de código en el método de actualización para solucionarlo.
Así que ponle pausa al video.
Ahora ve a dar una vuelta a eso.
Y cuando volvamos, te mostraré cómo hacerlo.
Muy bien.
¿Cómo te fue con eso?
Bien, si volvemos a nuestro controlador de IA, recordarás que pusimos este agente de reinicio aquí.
En realidad, tenemos que ejecutar eso cada vez que lleguemos a una ubicación de la meta.
Así que la ubicación de la meta se está comprobando aquí abajo en la actualización.
Así que lo que queremos hacer después de haber llegado a nuestra ubicación antes de obtener una nueva ubicación de la meta
es en realidad ejecutar el agente de reinicio, que establecerá las animaciones de nuevo a caminar y también establecer las velocidades y todo de nuevo
a la normalidad.
Así que, en lugar de huir, se pasea tranquilamente.
Bien, entonces si guardamos eso rápidamente, volvemos a nuestra escena.
Ahora, lo que voy a hacer es sólo para probar esto y va a agarrar todas estas personas y el control d ellos para
hacer un conjunto doble de todo el mundo.
Así que tendremos un montón de gente corriendo.
Ahora vamos a pulsar el play.
Muy bien.
Así que todos van un poco demasiado rápido para notar realmente el efecto aquí.
Y en realidad van súper rápido para empezar.
No están huyendo.
En realidad están ejecutando este código aquí para nuestro multiplicador de velocidad, que tiene este valor aquí.
Así que voy a ralentizar a estos chicos para que podamos ver realmente el efecto.
Y pongamos esto en 1. 5 F ahí dentro.
Vale, nos lo guardaremos.
Ahora, antes de tocar esto, también voy a agarrar uno de estos lugares de la meta y duplicarlo y sólo
poner algunos aquí para que tengamos más gente corriendo en el centro de la escena.
Vale, pues pulsemos el play y les echaremos un vistazo cuando salgan al centro aquí.
Y una vez que se pongan en movimiento, podremos empezar a colocar algunos cilindros entre un montón de ellos.
Así que como aquí abajo ver a todos huyendo de ella.
Así que eso es huir.
Y espero que hayas disfrutado jugando con este público y esta técnica.