Grid Graph, layered worlds를 지원합니다.
GridGraph는 많은 면에서 훌륭하며, 신뢰성이 높고 구성 및 런타임 동안 업데이트가 용이합니다. 그러나 다층 구조의 세계, 예를 들어 여러 층이 있는 건물을 지원하지 않는다는 단점이 있습니다. 이 점에서 이 그래프 유형이 유용합니다. 이 그래프는 기본적으로 GridGraph와 동일한 기능을 지원하지만, 다층 구조도 지원합니다. 일반 GridGraph보다 메모리를 더 많이 사용하지만, 그 외에는 동등합니다.
Inspector
Shape
그리드 그래프 인스펙터의 레이아웃을 Unity 에디터에서 결정합니다.
그리드 그래프는 일반 그리드, 아이소메트릭 그리드 또는 육각형 그리드로 설정할 수 있습니다. 각 모드는 약간 다른 인스펙터 레이아웃을 사용합니다. 인스펙터에서 모양을 변경하면 관련 필드가 자동으로 적절한 값으로 설정됩니다. 예를 들어, 모양을 육각형으로 설정하면 neighbours 필드가 자동으로 6으로 설정됩니다.
이 필드는 에디터에서만 사용되며 게임의 나머지 부분에는 전혀 영향을 미치지 않습니다.
인스펙터에서처럼 그리드 모양을 변경하려면 SetGridShape 메서드를 사용할 수 있습니다.
참조 이 설정은 inspectorGridMode 멤버에 해당합니다. |
2D
그래프가 2D 모드인지 설정하거나 가져옵니다.
참고 이것은 편의 속성일 뿐이며, 실제로는 그래프의 rotation을 읽거나 수정합니다. 그래프가 2D 평면에 정렬된 회전을 가지면 그 그래프가 2D인지 아닌지를 결정합니다. |
참조 그래프가 2D 물리학을 사용할지 여부도 this.collision.use2D ( GraphCollision.use2D )를 사용하여 설정할 수 있습니다. |
참조 이 설정은 is2D 멤버에 해당합니다. |
Align to tilemap (grid)
이 그리드를 주어진 타일맵이나 그리드 레이아웃에 맞춥니다.
게임에서 타일맵을 렌더링에 사용하고 그래프가 정확히 동일한 방식으로 배치되도록 하려면 매우 유용합니다. 그리드 매개변수를 수동으로 일치시키는 것은 경우에 따라 상당히 까다로울 수 있습니다.
인스펙터는 장면에서 타일맵을 감지하면 타일맵에 맞추는 버튼을 자동으로 표시합니다. 타일맵이 감지되지 않으면 버튼이 숨겨집니다.
참조 Pathfinding on tilemaps |
참조 이 설정은 AlignToTilemap 멤버에 해당합니다. |
Width
노드 단위로 그리드의 너비를 설정합니다.
그리드 그래프는 일반적으로 너비가 10에서 500 노드 정도이지만, 기본적으로 최대 1024 노드 너비까지 가능합니다. 매우 고해상도의 그리드가 필요하다면 대신 리캐스트 그래프를 사용하는 것이 좋습니다.
이 값은 A* 인스펙터 -> 최적화 탭에서 ASTAR_LARGER_GRIDS가 활성화되지 않는 한 최대 1024로 고정됩니다.
참조 depth SetDimensions |
참조 이 설정은 width멤버에 해당합니다. |
Depth
노드 단위로 그리드의 깊이(높이)를 설정합니다.
그리드 그래프는 일반적으로 너비가 10에서 500 노드 정도이지만, 기본적으로 최대 1024 노드 너비까지 가능합니다. 매우 고해상도의 그리드가 필요하다면 대신 리캐스트 그래프를 사용하는 것이 좋습니다.
이 값은 A* 인스펙터 -> 최적화 탭에서 ASTAR_LARGER_GRIDS가 활성화되지 않는 한 최대 1024로 고정됩니다.
참조 width SetDimensions |
참조 참조 이 설정은 depth멤버에 해당합니다. |
Node size
월드 유닛으로 하나의 노드 크기를 설정합니다.
그리드 레이아웃에서는 그리드 사각형의 변의 길이를 나타냅니다.
육각형 레이아웃에서는 이 값이 육각형의 특정 차원에 대응하지 않습니다. 대신 ConvertNodeSizeToHexagonSize를 사용하여 육각형의 차원으로 변환할 수 있습니다.
참조 SetDimensions |
참조 참조 이 설정은 nodeSize 멤버에 해당합니다. |
Aspect ratio (isometric/advanced shape)
X 축을 따라 그래프의 스케일링을 설정합니다.
그리드의 X 축과 Y 축에 다른 스케일을 적용하려는 경우에 사용해야 합니다.
이 옵션은 그래프 모양이 아이소메트릭 또는 고급으로 설정된 경우에만 인스펙터에 표시됩니다.
참조 이 설정은 aspectRatio 멤버에 해당합니다. |
Isometric angle (isometric/advanced shape)
아이소메트릭 프로젝션에 사용할 각도(도 단위)를 설정합니다.
2D 아이소메트릭 게임을 만들고 있는 경우, 이 매개변수를 사용하여 그래프 레이아웃을 게임에 맞게 조정할 수 있습니다. 이 설정은 기본적으로 그래프를 대각선 방향으로 스케일링하여 아래와 같은 효과를 냅니다:
아이소메트릭 그래프의 원근법 보기.
아이소메트릭 그래프의 상단 보기. 이 이미지는 완전히 2D이며 원근법이 적용되지 않았습니다.
자주 사용되는 값에 대해서는 StandardIsometricAngle 및 StandardDimetricAngle을 참조하세요.
일반적으로 사용하고자 하는 각도는 30도 (또는 90-30 = 60도) 또는 atan(1/sqrt(2))로, 이는 대략 35.264도 (또는 90 - 35.264 = 54.736도)입니다. 또한 게임에 필요한 방향을 얻기 위해 그래프를 Y축을 중심으로 ±45도 회전할 수도 있습니다.
자세한 내용은 아래 링크된 위키피디아 페이지를 참조하세요.
참조 http://en.wikipedia.org/wiki/Isometric_projection https://en.wikipedia.org/wiki/Isometric_graphics_in_video_games_and_pixel_art rotation |
참조 이 설정은 isometricAngle 멤버에 해당합니다. |
Center
월드 공간에서 그리드의 중심점을 설정합니다.
그래프는 월드의 어느 위치에나 배치할 수 있습니다.
참조 RelocateNodes(Vector3,Quaternion,float,float,float) |
참조 이 설정은 center 멤버에 해당합니다. |
Rotation
그리드의 회전을 도 단위로 설정합니다.
노드는 회전의 X 및 Z 축을 따라 배치됩니다.
2D 게임의 경우 회전은 일반적으로 (-90, 270, 90)으로 설정됩니다. 그래프가 XY 평면에 맞춰져 있으면 인스펙터가 자동으로 2D 모드로 전환됩니다.
참조 is2D |
참조 이 설정은 rotation 멤버에 해당합니다. |
Connections
각 노드의 이웃 수를 설정합니다.
노드당 네 개, 여섯 개, 여덟 개의 연결이 가능합니다.
여섯 개의 연결은 주로 육각형 그래프를 위한 것입니다.
참조 이 설정은 neighbours 멤버에 해당합니다. |
Cut corners
비활성화된 경우, 장애물의 코너를 자르지 않습니다.
이 값이 true이고 neighbours가 Eight로 설정된 경우, 연결에 의해 장애물의 코너를 자를 수 있습니다.
참조 이 설정은 cutCorners 멤버에 해당합니다. |
Max step height
연결을 활성화하기 위해 두 노드 간의 최대 y 좌표 차이입니다.
값을 0으로 설정하면 이 값을 무시합니다.
이 설정은 예를 들어, 그래프가 절벽이나 계단 주변에서 생성되는 방식에 영향을 미칩니다.
참조 maxStepUsesSlope |
버전 이전에는 maxClimb로 불렸습니다. |
참조 이 설정은 maxStepHeight 멤버에 해당합니다. |
.
Account for slopes
maxStepHeight를 위해 경사를 고려합니다.
이 옵션을 활성화하면 지형의 노멀을 사용하여 인접한 노드 간의 계단 크기를 보다 정확하게 추정할 수 있습니다.
비활성화된 경우 두 노드 간의 계산된 계단은 y 좌표 차이입니다. 이는 특히 가파른 경사 시작 부분에서 부정확할 수 있습니다.
아래 이미지에서 경사로 근처에서 발생하는 예를 볼 수 있습니다. 맨 위의 이미지에서는 경사로가 그래프의 나머지 부분과 연결되지 않아 우리가 원하는 결과가 아닙니다. 중간 이미지에서는 maxStepUsesSlope 를 비활성화한 상태에서 최대 계단 높이를 높이려는 시도가 있습니다. 그러나 이는 너무 많은 연결을 추가하게 되어, 에이전트가 측면에서 경사로를 올라갈 수 없게 됩니다. 마지막으로 맨 아래 이미지에서는 maxStepHeight 가 원래 값으로 복원되었지만 maxStepUsesSlope 가 활성화되었습니다. 이 구성은 경사로를 더 스마트하게 처리합니다. 이미지의 모든 값은 예제 값일 뿐이며, 씬에 따라 다를 수 있습니다.
참조 maxStepHeight |
참조 이 설정은 maxStepUsesSlope 멤버에 해당합니다. |
Max slope
노드가 보행 가능하도록 하는 최대 경사도를 도 단위로 설정합니다.
참조 이 설정은 maxSlope 멤버에 해당합니다. |
Erosion iterations
그래프를 침식할 횟수를 설정합니다.
그래프를 침식하여 장애물에 여분의 여유 공간을 추가할 수 있습니다. 그래프에 절벽이 포함되어 있고, 침식 없이 보행 가능한 노드가 가장자리와 너무 가까운 경우 매우 편리합니다.
아래는 침식 반복 횟수가 0, 1, 2인 그래프를 보여주는 이미지입니다:
참고 침식 반복 횟수가 많으면 런타임 동안 그래프 업데이트 속도가 느려질 수 있습니다. 이는 업데이트되는 영역이 경계 노드의 가능한 변화를 고려하여 침식 반복 횟수의 두 배로 확장되어야 하기 때문입니다. |
참조 erosionUseTags |
참조 참조 이 설정은 erodeIterations 멤버에 해당합니다. |
Erosion → Erosion Uses Tags
보행 가능성 대신 태그를 사용하여 침식합니다.
노드를 보행 불가능으로 표시하는 대신 침식에 태그를 사용합니다. 노드는 erosionFirstTag로 시작하여 순차적으로 태그가 지정됩니다. 태그 모드로 디버그하여 효과를 확인할 수 있습니다. 이 옵션을 활성화하면 Seeker 컴포넌트의 Valid Tags 필드를 사용하여 다양한 AI가 벽에 얼마나 가까이 접근할 수 있는지 설정할 수 있습니다.
참조 erosionFirstTag |
참조 이 설정은 erosionUseTags 멤버에 해당합니다. |
Use 2D physics
Unity 2D Physics API를 사용합니다.
활성화하면 2D Physics API가 사용되고, 비활성화하면 3D Physics API가 사용됩니다.
이 설정은 콜라이더 유형을 3D 버전에서 해당하는 2D 버전으로 변경합니다. 예를 들어, 구형은 원형이 됩니다.
2D 물리학을 사용할 때 heightCheck 설정은 무시됩니다.
참조 http://docs.unity3d.com/ScriptReference/Physics2D.html |
참조 이 설정은 collision.use2D 멤버에 해당합니다. |
Collision testing
Enable Collision Testing
충돌 체크를 전환합니다.
참조 이 설정은 collision.collisionCheck 멤버에 해당합니다. |
Collider type
사용할 충돌 형태를 설정합니다.
참조 ColliderType |
참조 이 설정은 collision.type 멤버에 해당합니다. |
Diameter
충돌을 확인할 때 캡슐 또는 구의 직경을 설정합니다.
충돌을 확인할 때 시스템은 노드 위치에서 특정 형태와 겹치는 콜라이더가 있는지 확인합니다. 형태는 type 필드에 의해 결정됩니다.
직경이 1이면 형태의 직경이 노드의 너비와 같음을 의미하며, 다른 말로 하면 nodeSize 와 같습니다.
type이 Ray로 설정된 경우, 이 설정은 아무런 영향을 미치지 않습니다.
참조 이 설정은 collision.diameter 멤버에 해당합니다. |
Height/length
충돌을 확인할 때 캡슐의 높이 또는 레이의 길이를 설정합니다.
type이 Sphere로 설정된 경우, 이 설정은 아무런 영향을 미치지 않습니다.
경고 Unity의 캡슐 콜라이더 및 캐릭터 컨트롤러와 달리 이 높이는 캡슐의 끝 구형 부분을 포함하지 않고, 오직 실린더 부분만 포함합니다. 이는 주로 역사적인 이유 때문입니다. |
참조 이 설정은 collision.height 멤버에 해당합니다. |
Offset
충돌 검사를 수행할 지면 위의 높이를 설정합니다.
예를 들어, 지면이 y=0에 있고 collisionOffset = 2, type = Capsule, height = 3으로 설정된 경우, 물리 시스템은 하단 구형이 y=2에 중심을 두고 상단 구형이 y=2+3=5에 중심을 두는 캡슐 내에 콜라이더가 있는지 확인합니다.
type이 Sphere인 경우, 이 경우 구형의 중심은 y=2에 있게 됩니다.
참조 이 설정은 collision.collisionOffset 멤버에 해당합니다. |
Obstacle layer mask
장애물로 처리할 레이어를 설정합니다.
참조 이 설정은 collision.mask 멤버에 해당합니다. |
Preview
충돌 테스트 옵션에 대한 미리보기를 표시합니다.
왼쪽에서는 노드의 그리드로 구성된 그래프의 상단 뷰를 볼 수 있습니다. 오른쪽에서는 그래프의 측면 뷰를 볼 수 있습니다. 아래의 흰색 선은 그래프의 기준선이며, 작은 점으로 노드 위치가 표시됩니다. 2D 물리학을 사용할 때는 상단 뷰만 표시됩니다.
녹색 모양은 충돌 체크에 사용할 모양을 나타냅니다.
참조 이 설정은 GridGraphEditor.collisionPreviewOpen 멤버에 해당합니다. |
Height testing
Enable Height Testing
높이 체크를 전환합니다.
false로 설정하면 그리드는 평평해집니다.
2D 물리학을 사용할 때는 이 설정이 무시됩니다.
참조 이 설정은 collision.heightCheck 멤버에 해당합니다. |
Ray length
높이를 확인할 때 사용할 높이 ('인스펙터에서 레이 길이')를 설정합니다.
아래 이미지가 시각화하듯이, 다른 레이 길이는 레이가 다른 물체에 닿게 할 수 있습니다. 이 거리는 그래프 평면에서 위로 측정됩니다.
참조 이 설정은 collision.fromHeight 멤버에 해당합니다. |
Mask
높이 검사에 포함될 레이어를 설정합니다.
참조 이 설정은 collision.heightMask 멤버에 해당합니다. |
Thick raycast
굵은 레이캐스트를 전환합니다.
참조 https://docs.unity3d.com/ScriptReference/Physics.SphereCast.html |
참조 이 설정은 collision.thickRaycast 멤버에 해당합니다. |
Unwalkable when no ground
높이 레이캐스트에서 지면을 찾지 못한 경우 노드를 보행 불가능으로 만듭니다.
높이 레이캐스트가 꺼져 있으면 이 설정은 아무런 영향을 미치지 않습니다.
참조 이 설정은 collision.unwalkableWhenNoGround 멤버에 해당합니다. |
Rules
Grid Graph 규칙에 대한 자세한 내용은 사용 가능한 규칙 목록을 확인하세요.
Other settings
Show surface
그래프의 표면을 표시합니다.
각 노드는 사각형으로 그려집니다 (예: 육각형 그래프 모드가 활성화된 경우 제외).
참조 이 설정은 showMeshSurface 멤버에 해당합니다. |
Show outline
Unity 에디터에서 그리드 노드의 윤곽선을 표시합니다.
참조 이 설정은 showMeshOutline 멤버에 해당합니다. |
Show connections
Unity 에디터에서 그리드 노드 간의 연결을 표시합니다.
참조 이 설정은 showNodeConnections 멤버에 해당합니다. |
Initial penalty
모든 노드에 적용할 기본 패널티를 설정합니다.
참조 Graph Updates during Runtime GraphNode.Penalty Working with tags |
참조 이 설정은 NavGraph.initialPenalty 멤버에 해당합니다. |
참고 그래프는 기본적으로 16개의 레이어를 지원하지만, A* 인스펙터 → 설정 → 최적화 탭에서 ASTAR_LEVELGRIDNODE_MORE_LAYERS 옵션을 활성화하여 256개로 증가시킬 수 있습니다. |
참고 GridGraph |
A* Pro 기능 이 기능은 A* Pathfinding Project Pro 버전에서만 사용할 수 있습니다. 이 함수/클래스/변수는 A* Pathfinding Project 무료 버전에서는 존재하지 않거나 기능이 제한될 수 있습니다. Pro 버전은 여기서 구매할 수 있습니다. |
'유니티 에셋 > A* Pathfinding project pro' 카테고리의 다른 글
Class RichAI Extends AIBase, IAstarAI (1) | 2024.07.01 |
---|---|
Class RecastGraph Extends NavmeshBase, IUpdatableGraph (1) | 2024.06.30 |
Class DynamicGridObstacle Extends GraphModifier (0) | 2024.06.26 |
Class GridGraph Extends NavGraph, IUpdatableGraph, ITransformedGraph, IRaycastableGraph (0) | 2024.06.23 |
Classes (0) | 2024.05.29 |