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이며 원근법이 적용되지 않았습니다.

자주 사용되는 값에 대해서는 StandardIsometricAngleStandardDimetricAngle을 참조하세요.

일반적으로 사용하고자 하는 각도는 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 버전은 여기서 구매할 수 있습니다.

 

 

+ Recent posts