Astar

⌨️ 실습

[ Unity ] A*(Astar) 최단 경로 찾기

▶ 타일맵 2D Object > Tilemap을 생성하고 Tilemap Pallette를 이용해 맵을 그린다. (이동하지 못하는 장애물에 Tilemap Collider 컴포넌트 추가) ▶ 선 그리기 OnDrawGizmos 함수에서 Gizmos.DrawLine 함수를 이용하여 씬 뷰에 이동할 최단 경로를 시각적으로 그린다. ▶ 최단 경로 찾기 A* 알고리즘을 이용해 목적지까지의 최단 경로를 계산한다. ▶ 이동하기 코루틴에서 Translate 함수를 이용해 플레이어가 최단 경로를 따라 움직이게 하였다.

✏️ 이론/알고리즘

A* (Astar) 알고리즘

1. A* 알고리즘이란? 시작 노드에서부터 목표 노드까지의 최단 경로를 찾는 그래프 탐색 알고리즘. 2. 탐색 과정 0. 각 노드에서 f(n), g(n), h(n) 값을 계산한다. g(n) : 시작 노드에서 현재 노드까지의 비용 h(n) : 현재 노드에서 목표 노드까지의 추정 비용 f(n) : g(n) + h(n) (최종 비용) * h(n)값을 구하는 방법에는 여러 가지가 있다. (이 경우에는 맨하탄 거리(Manhattan Distance)를 사용한다) * 맨하탄 거리 : | 현재 좌표 x값 - 목표 좌표 x값 | + | 현재 좌표 y값 - 목표 좌표 y값 | 1. 현재 노드에서 이동할 수 있는 노드들을 열린 목록(Open List)에 넣는다. 2. 열린 목록의 노드 중 f(n)값이 최소인 노드로 이동한..

jinwon0707
'Astar' 태그의 글 목록