Algoritmo de navegación UnityA*, fácil de entender

En primer lugar, el algoritmo de búsqueda de rutas A* se divide en algoritmo 2D y algoritmo 3D. En la actualidad, ni siquiera es tan eficiente como el algoritmo NAVMesh. Pero NAVMesh no es adecuado para 2D, por lo que 2D aún debe realizarse mediante el algoritmo A*.

Ahora hablemos de cómo se realiza el 2D.

En primer lugar, el algoritmo 2DA* primero divide el mapa en bloques de cuadrícula y los marca en matrices bidimensionales.

Cada cuadrícula forma una matriz de int[][][][] basada en x, y (posición), número de identificación y valor de peso para determinar la posición de cada cuadrícula

A continuación, suponga que la búsqueda de rutas A* se realiza de A a B

Primero seleccione 4 u 8 puntos cerca del punto A (el rojo son 4 posiciones y los puntos azules que se suman sobre la base de 4 son las posiciones de 8 puntos)

(Esta vez elegimos 8 puntos para explicar. Si solo se permite que se mueva la línea de defensa horizontal del objeto, solo se pueden seleccionar cuatro puntos).

A continuación, estos 8 puntos se pueden almacenar en secuencia y ver cuál de estos 8 puntos está más cerca del punto B y seleccionar este punto

Luego seleccione 8 puntos a partir de este punto, y así sucesivamente, hasta que haya un punto b entre los 8 puntos, lo que indica que la navegación está completa

Este es su principio básico de algoritmo.

¿Qué debo hacer si encuentro un obstáculo?

De acuerdo con la lógica anterior, debería ser así.

Toma el punto rojo de arriba y muere.

En este punto, A* encuentra que es imposible ir, así que regresaré en este momento.

Significa que no puedes ir aquí cuando encuentras un obstáculo, tienes que cambiar la dirección

se trata de peso

En este momento, descubrí que encontré un obstáculo cuando caminé esta vez, y no podía caminar después de caminar el peso más pequeño de 1.

Por lo tanto, es necesario registrar el peso de las coordenadas escritas al golpear la pared, para evitar la situación de no poder pasar. En este momento, elija 2 para encontrar el camino y luego busque hacia abajo por turno.

Esto completa la navegación, pero puede causar una gran sobrecarga computacional cuando se encuentra con una navegación de laberinto compleja, ¡así que tenga cuidado!

Por lo tanto, la "navegación de cuatro puntos" generalmente se usa en el mapa mundial abierto. Dado que el espacio no es pequeño, lo actualizaré más adelante según la situación.

Supongo que te gusta

Origin blog.csdn.net/qq_46043095/article/details/131183314
Recomendado
Clasificación