Algorithme de navigation UnityA*, facile à comprendre

Tout d'abord, l'algorithme de recherche de chemin A * est divisé en algorithme 2D et algorithme 3D.À l'heure actuelle, il n'est même pas aussi efficace que l'algorithme NAVMesh. Mais NAVMesh n'est pas adapté à la 2D, donc la 2D doit encore être réalisée par l'algorithme A*.

Parlons maintenant de la façon dont la 2D est réalisée.

Tout d'abord, l'algorithme 2DA* divise d'abord la carte en blocs de grille et les marque en tableaux bidimensionnels

Chaque grille forme un tableau de int[][][][] basé sur x, y (position), numéro d'identification et valeur de poids pour déterminer la position de chaque grille

Ensuite, supposons que la recherche de chemin A * est effectuée de A à B

Sélectionnez d'abord 4 ou 8 points près du point A (le rouge correspond à 4 positions et les points bleus qui sont ajoutés sur la base de 4 sont les positions de 8 points)

(Cette fois, nous choisissons 8 points à expliquer. Si seule la ligne de défense horizontale de l'objet est autorisée à se déplacer, seuls quatre points peuvent être sélectionnés.)

Ensuite, ces 8 points peuvent être stockés en séquence, et voir lequel de ces 8 points est le plus proche du point B et sélectionner ce point

Sélectionnez ensuite 8 points à partir de ce point, et ainsi de suite, jusqu'à ce qu'il y ait un point b parmi les 8 points, indiquant que la navigation est terminée

C'est son principe d'algorithme de base

Que dois-je faire si je rencontre un obstacle ?

Selon la logique ci-dessus, il devrait être comme ça

Prends le point rouge ci-dessus et meurs

À ce stade, A* constate qu'il ne peut pas passer, je dois donc revenir à ce moment-là

Cela signifie que vous ne pouvez pas y aller lorsque vous rencontrez un obstacle, vous devez changer de direction

C'est une question de poids

À ce moment-là, j'ai découvert que je rencontrais un obstacle lorsque je marchais cette fois-ci, et je ne pouvais pas marcher après avoir marché le plus petit poids de 1.

Par conséquent, il est nécessaire d'enregistrer le poids des coordonnées écrites lorsque vous heurtez le mur, afin d'éviter la situation de ne pas pouvoir passer.A ce moment, choisissez 2 pour trouver le chemin, puis cherchez à tour de rôle.

Cela termine la navigation, mais cela peut entraîner une énorme surcharge de calcul lorsque vous rencontrez une navigation complexe dans un labyrinthe, alors soyez prudent !

Par conséquent, la "navigation à quatre points" est généralement utilisée dans la carte du monde ouverte. Comme l'espace n'est pas petit, je le mettrai à jour plus tard en fonction de la situation.

Je suppose que tu aimes

Origine blog.csdn.net/qq_46043095/article/details/131183314
conseillé
Classement