[C#, Unity, 최단경로(PathFinding)] TileMap 너비우선탐색(BFS) 알고리즘
·
Unity,C#/알고리즘
■ 개요우리가 흔히 알고 있는 그래프 탐색 알고리즘에는 깊이우선탐색(DFS), 너비우선탐색(BFS), 다익스트라(Dijkstra) 알고리즘 등이 있다. 그렇다면 이런 그래프 탐색 알고리즘이 "2차원 배열의 타일맵(TileMap)"에서 어떻게 최단 경로를 찾는 데 사용될 수 있을까?  결론부터 말하자면, TileMap도 그래프이다. 예를 들어, 타일을 상하좌우 4방향으로만 이동할 수 있고, 흰색 타일을 길, 검은 타일을 장애물이라 하자. 이 경우, A타일은 인접한 B,C,D타일로 이동할 수 있다. 이런 타일을 그래프의 노드로 표현하면, A노드는 B,C,D를 자식 노드로 가지고 있는 것과 동일한 구조로 볼 수 있다.즉, 각 타일은 그래프의 정점, 이동 가능한 인접한 타일은 간선으로 연결되어 있는 그래프이다...