그래프 구조 편집 방법
때로는 그래프가 거의 올바르지만, 약간 수정이 필요한 경우가 있습니다. 이는 포인트 그래프에서 가장 일반적이며, 이 페이지는 주로 해당 그래프 유형을 대상으로 합니다. 하지만 이 방법은 어느 정도 다른 그래프 유형에서도 작동합니다.
점프, 등반, 텔레포터 및 기타 특수 이동 로직을 처리하려면 Off-mesh links 링크를 참조하세요. |
The NodeLink component
포인트 그래프에서 연결을 추가하거나, 기존 연결을 제거하거나, 일부 연결의 비용을 변경하려는 경우 NodeLink 컴포넌트를 사용할 수 있습니다. 포인트 그래프는 일반적으로 GameObjects의 컬렉션에서 생성됩니다. NodeLink 컴포넌트를 하나의 노드에 추가한 다음, 대상을 다른 노드로 설정할 수 있습니다. 옵션을 변경하여 두 노드 사이에 새 연결을 추가하거나, 이미 존재하는 연결을 제거하거나(있는 경우), 두 노드 사이의 연결 비용을 변경할 수 있습니다. 이 새로운 연결은 원래 포인트 그래프에 의해 생성된 것과 동일합니다.
그래프를 쉽게 수정할 수 있도록 몇 가지 키보드 단축키가 있습니다. Unity의 메뉴바 -> Edit -> Pathfinding에서 메뉴 항목을 찾을 수 있습니다.
- alt+ctrl+L (macOS에서는 alt+cmd+L): 두 노드를 연결합니다. NodeLink 연결이 없으면 노드를 연결하고, 이미 연결된 경우 명시적으로 연결을 삭제합니다.
- alt+ctrl+U (macOS에서는 alt+cmd+U): 두 노드의 연결을 해제합니다. NodeLink가 연결을 추가하거나 삭제하도록 구성되어 있는지와 상관없이 두 노드를 연결하는 NodeLink 컴포넌트를 제거합니다.
- alt+ctrl+B (macOS에서는 alt+cmd+B): 선택한 GameObjects의 모든 NodeLink 컴포넌트를 제거합니다.
Editing graph connections using code
코드를 사용하여 그래프 연결을 수정할 수도 있습니다.
// 두 노드를 연결합니다.
var node1 = AstarPath.active.GetNearest(transform.position, NNConstraint.None).node;
var node2 = AstarPath.active.GetNearest(transform.position + Vector3.right, NNConstraint.None).node;
var cost = (uint)(node2.position - node1.position).costMagnitude;
GraphNode.Connect(node1, node2, cost, OffMeshLinks.Directionality.TwoWay);
참조 GraphNode.Connect GraphNode.Disconnect GraphNode.ContainsOutgoingConnection Graph Updates Creating graphs during runtime Graph Types |
'유니티 에셋 > A* Pathfinding project pro' 카테고리의 다른 글
Deploying (0) | 2024.05.28 |
---|---|
Spherical Worlds (0) | 2024.05.28 |
Extending The System > Writing Modifiers (0) | 2024.05.28 |
Extending The System > Writing Graph Generators (0) | 2024.05.28 |
Extending The System (0) | 2024.05.28 |