태그를 사용하여 다양한 캐릭터가 걸을 수 있는 위치를 제한하는 방법
태그를 사용하여 노드 및 영역을 태그 지정하는 것은 강력한 기능입니다. 이를 통해 어떤 유닛이 어떤 지형을 걸을 수 있는지 제한할 수 있습니다. 예를 들어, 당신의 세계에 일부 생물들, 플레이어, 그리고 몇몇 AI가 있다고 상상해 보세요. AI와 생물들이 랜덤하게 경로를 찾아 다니지만, 생물들이 집 안으로 들어가지 않도록 하고 싶다면 태그를 사용하는 것이 훌륭한 해결책이 될 수 있습니다. 실내 영역을 "Indoors"라는 태그로 지정하고, 생물들이 그 노드들을 걸을 수 없도록 설정하면 됩니다!
태그 지정과 GraphUpdateScene 컴포넌트의 기능을 보여주는 동영상이 있습니다. 이 컴포넌트는 영역을 태그 지정하는 데 큰 도움이 됩니다.
먼저 일부 노드를 태그로 표시합니다. 그런 다음 Seeker 컴포넌트에는 "Valid Tags"라는 설정이 있습니다. 이 설정은 팝업 메뉴로 제공되며, 유닛이 어떤 태그를 통과할 수 있는지를 설정할 수 있습니다. 첫 번째 태그(보통 "Basic Ground"라고 명명)는 처음에 모든 노드에 설정됩니다. 경로 찾기를 할 때, Seeker는 경로가 통과할 수 있는 태그를 설정하고(편집기에서 설정한 태그들) 해당 제약 조건을 사용하여 경로를 찾으려고 합니다. 가장 가까운 노드를 검색할 때도 유효한 태그가 설정된 노드를 선택하도록 합니다.
다음은 제한된 영역 태그를 제외한 모든 태그를 통과할 수 있는 Seeker 컴포넌트의 이미지입니다.
시스템에서 하는 최적화 중 하나는 영역을 플러드 필링하여 한 지점에서 다른 지점으로 유효한 경로를 찾을 수 있는지를 아는 것입니다. 그러나 모든 태그에 대해 그렇게 할 수는 없습니다. 두 영역이 다른 태그가 있는 영역에 의해 분리되어 있지만 여전히 걸을 수 있는 경우, 그 영역들은 동일한 영역 ID를 공유하게 됩니다. 이는 유닛이 한 영역에서 시작하여 다른 영역으로 가는 경로를 찾으려고 할 때 중간 영역을 통과할 수 없으면 모든 가능한 노드를 검색한 후에야 멈추게 되어 시간이 더 걸릴 수 있다는 것을 의미합니다.
위에서 언급했듯이, GraphUpdateScene 컴포넌트는 노드를 태그 지정할 때 큰 도움이 됩니다. 이 컴포넌트에는 "Modify Tags" 설정이 있어 다각형의 노드 태그를 수정할지 여부를 설정할 수 있고, "Set Tag"는 "Modify Tags"가 true로 설정된 경우 노드를 태그로 표시할 태그를 정의합니다. GraphUpdateScene 컴포넌트 사용 방법에 대한 도움말은 Graph Updates 페이지를 참조하십시오.
태그를 디버그하려면 A* Inspector –> Settings –> Debug –> Path Debug Mode에서 디버그 모드를 Tags로 변경하십시오(Show Graphs가 켜져 있는지 확인하십시오). 이렇게 하면 각 태그가 특정 색상으로 렌더링되어 쉽게 구분할 수 있습니다.
태그는 사용하기 쉽게 이름을 지정할 수도 있습니다. A* Inspector –> Settings –> Tags에서 태그의 이름을 설정할 수 있습니다. 이 이름은 모든 태그 선택 필드에서 사용됩니다.
'유니티 에셋 > A* Pathfinding project pro' 카테고리의 다른 글
Accessing graph data (0) | 2024.05.27 |
---|---|
Saving and Loading Graphs (0) | 2024.05.27 |
Navmesh Cutting (0) | 2024.05.27 |
Using nodes (0) | 2024.05.27 |
Grid Graph Rules > Writing Custom Grid Graph Rules (0) | 2024.05.26 |