- 리스트의 한 종류

- 선입선출(FIFO)

- 선언 : Queue<Node> queue = new Queue<Node>();

- 추가 : queue.Enqueue();

- 제거 : queue.Dequeue();

- 첫번째아이템 엿보기 : queue.Peek();

 

너비 우선 탐색

우선 Awake문에서 GridManager의 Grid를 찾고 존재하면 멤버 딕셔너리 변수인 grid를 GridManager의 Grid로 하고나서 인스펙터에서 정한 시작지와 목적지 노드를 할당해준다.

이후에 Start문에서 너비우선탐색 함수를 부른다.

Awake Start

frontier 큐와 reached 딕셔너리에 한 번 시작 노드와 시작 key value를 추가하고

탐험 노드를 현재 노드로 하고 탐험 했는지 체크한 후 목적지를 찾을 때까지 이웃을 찾는 작업을 반복해준다.

BreadthFristSearch

이후에 현재 노드 좌표에서 방향 좌표를 더해 더해 이웃을 찾아주고

이웃마다 루프를 돌려 이미 도달하지 않고 걸을 수 있는 노드면 도달했다는 것과 탐험할 것이라는 정보를 추가해준다.

ExploreNeighbors

ObjectPool의 PathFinder에서 Destination Coordinates 좌표를 정해주면 그 목적지에 갈 때까지 너비 우선 탐색을 실행하게 된다.

실행

'유데미 강의 > C#과 Unity로 3D 게임 개발하기 : 레엄 러쉬' 카테고리의 다른 글

노드 블로킹  (0) 2022.09.12
왔던 경로 다시 찾기  (0) 2022.09.12
이웃 경로 찾기  (0) 2022.09.08
디버깅2  (0) 2022.09.08
딕셔너리  (0) 2022.09.08

+ Recent posts