Las Navigation Areas definen qué tan difícil es caminar a través de un área especifica, las áreas con bajo costos serán preferidas durante un path finding (encuentra caminos). Adicionalmente, cada NavMesh Agent tiene un Area Mask que puede ser utilizado para especificar en qué áreas el agente puede moverse.
En el ejemplo de arriba los tipos de área son utilizados para dos usos de casos comunes:
El tipo de área puede ser asignado a todos los objetos que son incluidos en el NavMesh baking, en adición, cada Off-Mesh Link tiene una propiedad para especificar el tipo de área.
En pocas palabras, el costo le permite a usted controlar qué areas el pathfinder (encuentra caminos) favorece cuando encuentre un camino. Por ejemplo, si usted configura el costo de una área a 3.0, viajar a través de esta área es considerado tres veces mayor que otra ruta alterna.
Para entender completamente cómo funciona el cost, echemos un vistazo a cómo el pathfinder (encuentra caminos) funciona.
Unity utiliza A* para calcular el camino más corto en el NavMesh. A* funciona en una gráfica de nodos conectados. El algoritmo comienza desde el nodo más cercano al camino de inicio y visita los nodos conectados hasta que el destino sea alcanzado.
Debido a que la representación de Unity es un mesh de polígonos, la primera cosa que el pathfinder necesita hacer es colocar un punto en cada polígono, que es la ubicación del nodo. El camino más corto es luego calculado entre estos nodos.
Los puntos amarillos y lineas en la foto de arriba muestra cómo los nodos y enlaces son colocados en el NavMesh, y en qué orden son atravesados durante el A*.
El costo de moverse entre dos nodos depende en la distancia para viajar el costo asociada con el tipo de área del polígono debajo del enlace, eso es, distance * cost. En práctica esto significa que si el costo es un área de 2.0, la distancia a través de tal polígono va a aparecer que es el doble de largo. El algoritmo A* requiere que todos los costos deben ser mayores que 1.0.
El efecto de los costos del camino resultante puede ser difícil de afinar, esencialmente para unos caminos mayores. La mejor manera de acercar costos es tratarlos como pistas. Por ejemplo, si usted quiere que los agentes no utilicen Off-Mesh links a menudo, usted puede aumentar sus costos. Pero puede ser un desafio para afinar un comportamiento dónde los agentes prefieren caminar en las aceras.
Otra cosa que usted puede notar en algunos niveles es que el pathfinder no siempre escoge el camino más corto, La razón para esto es la colocación de nodo. El efecto puede verse en escenarios dónde hay las grandes áreas están alado de obstáculos pequeños, que resulta el mesh de navegación con polígonos muy grandes y pequeños. En tales casos, los nodos en los polígonos más grandes pueden ser colocados en cualquier parte en el polígono grande y desde el punto de vista del pathfinder (encuentra camino) se ve como un desvío.
El cost (costo) por area type (tipo de área) puede configurarse globalmente en la pestaña Areas, o usted los puede anular por agente utilizando un script.
El tipo de áreas son especificadas en la pestaña Areas en la Navigation Window. Dónde hay 29 tipos personalizados, y 3 tipos integrados: Walkable, Not Walkable, y Jump.
If several objects of different area types are overlapping, the resulting navmesh area type will generally be the one with the highest index. There is one exception however: Not Walkable always takes precedence. Which can be helpful if you need to block out an area.
Cada agente tiene un Area Mask que describe qué áreas puede utilizar cuando navegue. El area mask pueden configurarse en las propiedades del agente, o el bitmask puede ser manipulado utilizando un script en tiempo de ejecución.
El area mask es útil cuando usted quiere que ciertos tipos de personajes sean capaz de caminar a través de un área. Por ejemplo, en un juego de evasión zombie, usted puede marcar el área debajo de cada puerta con el area type (tipo de área) Door, y no marque el área Door del Area Mask del personaje zombie.