En esta sección, estamos trabajando en la creación de algunos A. I. personajes que son manejados por las Mallas Nev.
Hasta ahora, tenemos a Choppa en la pantalla que irá entre los clics del ratón, pero las animaciones no están
hundidas.
Y también hay otro pequeño problema en nuestro gestor de agentes.
Vamos a arreglar esas cosas.
Abramos el código de nuestro gestor de agentes.
Ahora, como he dicho, tenemos un componente get que obtiene el controlador de la IA dentro de una actualización.
Ahora, esto es una práctica muy, muy mala y sé que lo hago mucho.
Y si has visto mis otras cosas, sobre todo las más antiguas, tiendo a haber hecho esto porque no
me di cuenta de las ramificaciones de hacerlo.
Todas las actualizaciones, excepto la de los componentes, son muy lentas.
Así que en cuanto a la optimización, no quieres hacer esto aquí haciéndolo en un inicio.
Es justo.
Porque ya está hecho y no hay que volver a hacerlo.
Así que eso es lo que vamos a hacer.
Vamos a mover este tipo de código hasta aquí.
En lo que respecta a nuestro código, sólo necesitamos que el agente de la malla naval ejecute el destino establecido.
Así que en realidad no necesitamos el objeto de juego.
Así que en vez de mantener los objetos del juego aquí arriba en un array, podríamos simplemente mantener un array de agentes de malla de navegación.
Así que voy a ir al agente de la malla naval.
Ahora puede que tenga que incluir la parte superior aquí para hacerse con ella.
Así que usando el motor de la unidad I y luego podemos ir ahora malla agente matriz de agentes hacia abajo en el objeto de juego de la estrella para un objeto con la etiqueta es conseguir
una matriz completa de objetos de juego.
Así que vamos a poner esos en su propia matriz aquí abajo.
Es sí, un poco de doble manejo, pero de todos modos, no hay mucho que podamos hacer en este momento.
Así que los objetos del juego van a ir en a y luego vamos para cada objeto del juego ir en a y aquí sólo
vamos a ir agente de malla nav.
Y sabes que lo que va a ser aún mejor es si hacemos una lista de agentes de malla naval aquí arriba.
Así que la lista de agentes de malla nav y que va a ser igual a una nueva lista de agente de malla nav.
Y luego aquí abajo podemos ir a agentes punto add y puede ser geo punto get component nav mesh agent.
Y ponerlo en la lista, lo que hace que sea mucho más fácil.
Entonces aquí abajo, vamos a ir por cada uno y sacaremos a nuestro agente de nuestra lista.
Así que el agente de malla naval a en los agentes y luego podemos ir un punto de golpe de destino establecido.
Así que nos hemos deshecho de nuestro componente get desordenado o nuestro componente get optimizado y poner eso en una lista
que estamos manteniendo de nuestros objetos del juego y luego ejecutar eso allí para que optimiza ese código para que
podamos guardar eso.
Ahora lo que tenemos que hacer es volver a considerar cuándo se mueve nuestro agente y cuándo no es lo suficientemente
justo.
Podemos decirle que fije el destino aquí, lo que lo pondrá en camino.
¿Pero cómo sabemos si se mueve o no?
Y cuando se está moviendo, queremos establecer su controlador de animación para ejecutar la animación de caminar en lugar de
la animación de inactividad.
Así que lo primero que vamos a tener que hacer es coger el animador que está en nuestro personaje.
Así que estos personajes vienen con un animador que ya he configurado para ti, para que no te preocupes de lidiar con
un sistema de animación así como de aprender A. I. pero tenemos que ponerlo en marcha.
Así que es el mismo tipo de cosa, este punto obtener componente y queremos obtener el animador así.
De acuerdo.
Ahora, en la actualización, podemos comprobar realmente dónde está Chopper con respecto a su destino.
Así que fijamos el destino en el gestor de agentes.
Pero en la actualización también podemos fijar el destino, pero podemos comprobar cuánto le queda por recorrer.
Así que no queremos ponerlo aquí porque lo vamos a poner fuera.
Pero vamos a ir algo así como si agente.
Punto restante de la distancia y tenemos que darle una distancia de lo lejos que está de su objetivo.
Digamos que son dos y puedes volver y cambiar eso si ves que entra en ralentí demasiado rápido.
Ahora para establecer la animación para el ralentí es anim set bool y la bandera en allí se llama se está moviendo.
Vamos a ponerlo en falso aquí entonces.
De lo contrario, iremos a la pelota de Adán se está moviendo a la verdad.
De acuerdo.
Así que debería comenzar su animación de caminar en movimiento y luego su ídolo dependiendo de lo lejos
que esté de su ubicación de la meta.
Así que guarda eso.
Permítanme mostrarles de dónde estoy sacando esta cadena en movimiento si no están familiarizados con la animación.
Así que volvamos a la unidad.
Una vez que esto termine de cargarse, vamos a seleccionar a Ciampa.
Ahora Ciampa tiene un animador.
Si abrimos este animador haciendo doble clic en él, va a mostrar un gráfico muy simple, que es su
máquina de estado, que es una animación, y tiene un chopper inactivo y un chopper caminando hacia adelante.
Ahora a la transición de la inactividad.
Para caminar hacia adelante.
Puedes ver que hay esta flecha aquí.
Si seleccionas esa flecha de ahí y echas un vistazo en el inspector, verás que tengo una bandera
de movimiento fácil ahí para true.
Y luego tengo otra aquí para que la falsa vuelva por el otro lado.
Si estás realmente interesado en entender cómo funcionan todos estos animadores y este tipo de cosas,
entonces echa un vistazo a mi curso de animación, que cubrirá todas estas cosas con mucho detalle.
Sí.
Así que con eso explicado, volvamos a nuestra escena y ya estamos listos para probar esto.
Así que vamos a pulsar el play.
Bien, entonces hacemos clic aquí y se va.
Está caminando y luego se detiene.
Ahora está llegando a un ligero patinaje cuando se detiene.
Eso son los dos metros que hemos puesto, si quieres que sea un poco más preciso.
Así que sigue caminando hasta el final.
Puedes poner ese valor en uno, como menos de uno o incluso más pequeño que eso.
De acuerdo.
Así que ahora que has hecho eso, tenemos nuestro helicóptero.
Podemos duplicar nuestro helicóptero.
Así que si lo seleccionas en la jerarquía y presionas control D, sólo asegúrate de que los separas y puedes ponerlos prácticamente en cualquier lugar,
siempre y cuando estén por encima de la malla de navegación estaría bien.
Y está en el aire.
En realidad no importa porque bajarán a la malla de navegación porque necesitan estar en la
malla de navegación para orientarse en ella.
De acuerdo.
Así que ahora vamos a presionar el play con todos esos chompers ahí.
Y lo bueno de esos colisionadores que configuramos antes, los colisionadores de la malla de navegación, es que da una especie de efecto de física
en la medida en que los mantiene separados.
No se superpondrán entre sí debido a todas esas pequeñas cápsulas verdes que tienen, pero tampoco
seguirán exactamente el mismo camino.
Así que se apartan de los caminos de los demás y podemos seguir pinchando por aquí.
Ahora, si hacemos clic aquí, no pueden pasar por encima de esas rocas, sólo van a pasar a través de ellas.
O algunos que no están tan inclinados como estos otros, pero no pueden pasar por encima
de ellos.
Así que ahora puedes poner un montón de estos pequeños tipos aquí y simplemente van a salir
y calcular sus caminos así.
Y dependiendo del camino que atraviesen, se obtienen algunos comportamientos
interesantes en los que se separan porque no caben todos en esa zona.
En el próximo vídeo, volveremos a añadir algunos tipos de agentes diferentes.