Vamos a convertir nuestro sistema de waypoints existente en uno que utiliza una malla de navegación en su lugar y lo
haremos para dar una amplia cobertura real del sistema NAV antes de empezar a profundizar en él en otras conferencias.
Así que comenzando con el código que terminó en la conferencia anterior donde el tanque fue comandado por
botones para seguir alrededor de estos waypoints que hemos colocado, vamos a reemplazar el código de A Star que
hemos puesto allí a mano con la malla de navegación en su lugar.
Ahora, para convertir el entorno en una malla de navegación en unity, lo primero que tienes que hacer es encontrar
todos los trozos que van a formar parte de la malla de navegación.
Y esos son todos los modelos en este caso.
Va a ser todo esto que está bajo el nivel de arte en la jerarquía, y eso incluye cosas como el
suelo, la llanura, las casas de hormigón, todo lo que se incluye con este mapa en particular.
Ya está configurado para utilizar las medidas NAV, pero la forma de hacerlo desde cero es seleccionar
el elemento que se quiere incluir en el sistema de malla nav.
Así que en este caso, estamos seleccionando el hormigón, que es ese trozo de hormigón alrededor del tanque
en el inspector, al lado del nombre del objeto bajo donde tiene estática y un pequeño cuadro desplegable.
Deja eso y déjame hacer esto un poco.
Pequeño.
De acuerdo.
Y ahí dentro buscas la navegación, la estática, y quieres que esté activada.
Y todo lo que esté activado para todas las medidas se incluirá entonces en el cálculo de la malla naval.
Así que con eso activado, puedes abrir la ventana de navegación.
La ventana de navegación se puede encontrar en la ventana, la navegación aérea y por lo general lo tienen sentado bajo el
inspector, porque usted no está realmente va a ella mucho.
Una vez que hayas configurado tu mundo, ve a la pestaña de cocción.
Ahora la pestaña bake va a procesar la malla de navegación para su terreno basado en todos los objetos
que ha hecho la navegación estática, y lo hace haciendo clic en el botón bake.
Una vez que lo hayas hecho, verás que tu mapa cambia y tienes todas estas áreas azules.
Estas son las zonas que se pueden recorrer a pie.
Sé que son transitables.
Si usted rápidamente se acerca a la pestaña de Áreas en la navegación, verá que ese color azul significa
que esos polígonos que se generan son donde el agente puede caminar.
Y de momento sólo está configurado para que sea transitable y no transitable.
También hay un salto por defecto.
Ahora bien, estos puntos transitables y no transitables están determinados por la forma en que su agente está configurado.
Por ahora, nos quedamos con lo que hay por defecto.
Ahora, la otra parte de una malla de navegación es el propio agente.
Y para definir lo que es un agente y lo que sabe sobre la malla de navegación para que pueda pasar a encontrar alrededor
de la malla de navegación es necesario añadir un componente de agente de navegación a sus NPCs.
En este caso es el tanque verde.
Así que si usted selecciona el tanque verde, a continuación, en el componente de anuncios inspector
y vamos a buscar agente de malla nav, añadir que en que de inmediato hará que el tanque se adhieren a la malla nav para que pueda utilizar
y encontrar la malla nav.
Hasta ahora hemos codificado todos los comportamientos de dirección para nuestros NPCs.
Ahora que has hecho del tanque un agente de malla naval, ya estará programado con el movimiento y la velocidad y
la aceleración de la velocidad angular y todas esas cosas, y encontrarás los ajustes para esos en
el componente que acabas de añadir al tanque de nuevo.
Por ahora, los dejaremos por defecto, pero siéntase libre de echar un vistazo a lo que son.
Así que tienes la velocidad, la aceleración de la velocidad angular.
También puedes configurar la evitación de obstáculos para que se aleje de las cosas.
Ahora es este agente de malla de navegación que vamos a agarrar con la secuencia de comandos y luego decirle dónde está nuestro waypoint.
Así que ahora vamos a reescribir nuestro script Follow Path.
Así que abre eso y ahora vamos a deshacernos de todo el código que ya no necesitamos.
Así que no necesitamos la meta de transformación y la velocidad y todo.
Así que vamos a borrar todo eso y te sorprenderás de lo poco que necesitas en realidad.
Necesitamos el gestor de puntos de ruta y todas esas cosas.
Ya no necesitamos nuestro gráfico porque en realidad estamos usando el gráfico que se crea con la malla de navegación.
Pero tenemos que conseguir el agente que está en el tanque actual.
Así que cuando usted va a la parte superior utilizando el motor de la unidad punto I en aquí para que podamos agarrar
eso y luego aquí abajo vamos a poner agente de malla nav y llamar a ese agente.
Entonces queremos hacernos con el agente y lo haremos en nuestro inicio.
Así que aquí abajo podemos ir.
Agente Dot.
Equals no es un componente de get.
Agente de malla NAV.
De acuerdo.
Así que ya lo hemos hecho.
En realidad, ya no usamos G para nuestros gráficos.
También podemos deshacernos de eso.
Lo único que realmente necesitamos son las posiciones de todos estos objetos para nuestros botones de donde
queremos ir.
De acuerdo.
Así que, en primer lugar, antes de llegar a eso, vamos a entrar en nuestra última actualización.
Entonces, ¿qué código debemos mantener y eliminar aquí?
Bueno, ¿adivina qué?
Es todo porque la malla naval va a hacer eso por nosotros o el agente de la malla naval.
Ahora vamos a echar un vistazo a lo que queda dentro de estos botones.
Bueno, hay un código que obviamente no estamos usando porque ya he borrado cosas por él.
Así que en realidad, voy a mantener esa línea allí porque tenemos que saber qué punto de la manera que vamos
a por lo menos la posición de la misma.
Así que vamos a deshacernos de ese, de ese y de ese otro.
Y aquí debajo vamos a decir agente punto establecer destino y luego le damos la posición a la que queremos
ir.
Así que en este caso va a ser woops cero punto transformar la posición del punto.
Ahora no tienes que usar los pequeños puntos de ruta rojos que hemos creado.
Eso fue para nuestro sistema de waypoints y tienen una posición en el mapa que está bien.
En realidad, puedes configurar esto para que sea cualquier posición del mapa a la que quieras que vaya tu tanque.
Bien, ese es el helipuerto.
Ir al botón.
Ahora, trabajando con nuestros agentes en Destino como un reto, puedes rellenar tus otros botones.
Puede que tengas más que yo, pero lo que quede ahí, llénalo.
Así que pon en pausa el vídeo ahora y cuando volvamos.
Continuaré con eso para ti.
Bienvenido de nuevo.
¿Cómo te fue con eso?
Bien, necesitamos esta línea y vamos a replicarla aquí y allá.
Luego cambiamos el waypoint al que vamos.
Así que uno en este caso y cuatro ahí abajo.
Bien, genial.
Así que guarda eso.
Y ahora vamos a volver a Unity, encontrar nuestro tanque, que es mi tanque de aquí.
Pero realmente no importa dónde esté.
Está en la malla de navegación.
Así que vamos a pulsar el play y luego podemos probar estos botones.
Así que si vamos a la ruina fuera el tanque va a la ruina.
Ahora lo que vas a encontrar es, ¿puedo acercarme un poco más aquí para ti?
Vamos al helipuerto, a echar un vistazo a donde fue el tanque.
Ya no sigue los waypoints porque hemos eliminado todo el sistema de waypoints y vemos que
también es mucho más preciso.
Así que es la malla de navegación, el cálculo de la ruta y si sólo vamos a una navegación, en realidad podría tener que dejar de jugar para
que podamos volver a la escena.
Así que cuando el tanque llegó desde la ruina, lo viste pasar entre estos edificios.
Ahora fíjate que hay azul por ahí.
Así que nuestro agente de malla naval es realmente capaz de navegar a través de allí sin golpear estas cosas aquí.
Así que las medidas navales son un concepto muy, muy poderoso.
Utilizan el algoritmo aStar por debajo para navegar y todos los códigos más o menos allí para usted.
Así que sí, úsalo y te darás cuenta de que, al pasar por muchas de mis otras cosas en las que tengo personajes que se mueven
en mis juegos, uso el sistema de malla de navegación porque no tengo tiempo para sentarme y reprogramar
todos estos sistemas de puntos de ruta y es agradable, preciso y rápido.