수준 내 탐색 메시입니다.
생성자 및 액세서
![]() | stingray.Level.navigation_mesh() stingray.LevelResource.create_navigation_mesh() stingray.NavigationMesh.merge() |
기타 관련 참조 항목
![]() |
constrain_to_polygon ( self, p, poly ) : stingray.Vector3, boolean![]() 점 p를 지정된 다각형에 제약하고, 결과 위치를 반환합니다.
|
self : | 이 함수가 작동하는 오브젝트 인스턴스를 지정합니다. 이 함수를 호출할 때에는 항상 이 self 매개변수를 제공해야 합니다. 도트(.) 호출 구문을 사용해야 하며, 객체 지향 콜론(:) 호출 구문을 사용하면 안 됩니다. 자세한 내용은 이 Stingray 도움말 항목, 또는 Lua 설명서의 이 페이지를 참조하십시오. | |
p : | 제약하려는 점입니다. | |
poly : | integer | 다각형의 색인입니다. |
결과 위치입니다. | |
boolean |
시작점이 원래 다각형 외부에 있어 이 함수 결과로 인해 이동된 경우 true를 반환합니다. |
![]() |
destroy ( world, mesh )![]() 메시를 삭제합니다.
|
world : | 메시를 소유하는 표준입니다. | |
mesh : | 삭제하려는 메시입니다. |
이 함수는 아무 값도 반환하지 않습니다. |
이 함수는 NavigationMesh.merge()를 통해 생성한 메시에 대해서만 호출해야 합니다.
참고: 메시를 꼭 삭제할 필요는 없습니다. 메시는 표준이 삭제되면 자동으로 삭제됩니다. 메모리가 바로 필요한 경우에만 메시를 명시적으로 삭제하십시오.
기타 관련 참조 항목
![]() |
find_nearest_polygon ( self, p ) : integer![]() 메시에서 점 p에 가장 가까운 다각형을 찾고, 그 색인을 반환합니다.
|
self : | 이 함수가 작동하는 오브젝트 인스턴스를 지정합니다. 이 함수를 호출할 때에는 항상 이 self 매개변수를 제공해야 합니다. 도트(.) 호출 구문을 사용해야 하며, 객체 지향 콜론(:) 호출 구문을 사용하면 안 됩니다. 자세한 내용은 이 Stingray 도움말 항목, 또는 Lua 설명서의 이 페이지를 참조하십시오. | |
p : | 시작점입니다. |
integer |
가장 가까운 다각형의 색인입니다. |
이 함수는 점 p가 메시 외부에 있는 경우에도 색인을 반환합니다.
![]() |
find_polygon ( self, p ) : integer?![]() 메시에서 점 p에 가장 가까운 다각형을 찾고, 그 색인을 반환합니다.
|
self : | 이 함수가 작동하는 오브젝트 인스턴스를 지정합니다. 이 함수를 호출할 때에는 항상 이 self 매개변수를 제공해야 합니다. 도트(.) 호출 구문을 사용해야 하며, 객체 지향 콜론(:) 호출 구문을 사용하면 안 됩니다. 자세한 내용은 이 Stingray 도움말 항목, 또는 Lua 설명서의 이 페이지를 참조하십시오. | |
p : | 시작점입니다. |
integer? |
가장 가까운 다각형의 색인을 반환하거나, 점이 메시 외부에 있는 경우 nil을 반환합니다. ? 표기는 이 유형이 선택 사항임을 나타냅니다. 해당 인스턴스가 0개 또는 한 개일 수 있습니다. |
기타 관련 참조 항목
![]() |
funnel ( self, path ) : integer[], integer[]![]() 다각형 경로가 제공된 경우, 이 함수는 해당 경로의 왼쪽과 오른쪽 모서리 정점이 포함된 두 개의 목록을 반환합니다.
|
self : | 이 함수가 작동하는 오브젝트 인스턴스를 지정합니다. 이 함수를 호출할 때에는 항상 이 self 매개변수를 제공해야 합니다. 도트(.) 호출 구문을 사용해야 하며, 객체 지향 콜론(:) 호출 구문을 사용하면 안 됩니다. 자세한 내용은 이 Stingray 도움말 항목, 또는 Lua 설명서의 이 페이지를 참조하십시오. | |
path : | table | 다각형 경로입니다. NavigationMesh.search()에 의해 반환된 경로가 한 예입니다. |
integer[] |
경로 왼쪽의 모서리 정점 목록입니다. [] 표기는 이 유형이 어레이임을 나타냅니다. 어레이는 구성원의 키가 순차적인 정수이며, 각 요소의 값이 표시된 유형의 인스턴스인 테이블입니다. |
integer[] |
경로 오른쪽의 모서리 정점 목록입니다. [] 표기는 이 유형이 어레이임을 나타냅니다. 어레이는 구성원의 키가 순차적인 정수이며, 각 요소의 값이 표시된 유형의 인스턴스인 테이블입니다. |
이 함수는 깔때기 알고리즘을 구현하는 데 사용할 수 있습니다. simple stupid funnel algorithm을 참조하십시오.
참고: 목록의 다각형이 팬을 형성하고 있으면 반환된 목록에서 정점이 반복될 수 있습니다. 반환된 목록에는 #path - 1개 항목(교차하는 각각의 다각형 모서리마다 항목 하나씩)이 포함됩니다.
![]() |
is_obstructed ( self, poly ) : boolean![]() 메시의 지정된 색인에 있는 노드가 차단되는지 여부를 나타냅니다.
|
self : | 이 함수가 작동하는 오브젝트 인스턴스를 지정합니다. 이 함수를 호출할 때에는 항상 이 self 매개변수를 제공해야 합니다. 도트(.) 호출 구문을 사용해야 하며, 객체 지향 콜론(:) 호출 구문을 사용하면 안 됩니다. 자세한 내용은 이 Stingray 도움말 항목, 또는 Lua 설명서의 이 페이지를 참조하십시오. | |
poly : | integer | 다각형의 색인입니다. |
boolean |
메시의 지정된 색인에 있는 노드가 차단되는 경우 true를, 그렇지 않으면 false를 반환합니다. |
![]() |
merge ( world, meshes, merge_tolerance ) : stingray.NavigationMesh![]() meshes 테이블에 제공된 모든 탐색 메시를 병합하여 새로운 NavigationMesh를 생성합니다.
|
world : | 새로운 메시를 소유하는 표준입니다. | |
meshes : | 병합할 탐색 메시가 나열되어 있는 테이블입니다. [] 표기는 이 유형이 어레이임을 나타냅니다. 어레이는 구성원의 키가 순차적인 정수이며, 각 요소의 값이 표시된 유형의 인스턴스인 테이블입니다. | |
merge_tolerance : | number | 인접한 두 정점을 병합하기 위한 최대 거리(미터)입니다. 예를 들어, merge_tolerance가 0.5로 설정되어 있으면 서로 간의 거리가 50cm가 안 되는 모든 탐색 메시 정점이 병합됩니다. |
새로 생성된 탐색 메시입니다. |
이 함수를 호출하면 표준이 소유하는 새로운 NavigationMesh가 생성됩니다. 이 메시는 표준이 삭제되면 자동으로 삭제됩니다. 탐색 메시를 먼저 삭제하고 싶다면 명시적으로 NavigationMesh.destroy() 함수를 사용하면 됩니다.
병합이 작동하려면 모든 정점이 병합된 모서리상에서 서로 일치해야 합니다. 모서리가 하나라도 어긋나면 병합이 작동하지 않습니다. 예를 들면 다음과 같습니다.
병합이 작동합니다. 정점이 일치합니다.
병합이 작동하지 않습니다.
기타 관련 참조 항목
![]() |
num_polygons ( ) : integer![]() 메시에 있는 다각형 수를 검색합니다.
|
이 함수는 어떠한 매개변수도 수용하지 않습니다. |
integer |
메시에 있는 다각형의 수입니다. |
![]() |
num_vertices ( ) : integer![]() 메시에 있는 정점 수를 검색합니다.
|
이 함수는 어떠한 매개변수도 수용하지 않습니다. |
integer |
메시에 있는 정점 수입니다. |
![]() |
partial_search ( self, start, end, focus, max_search_nodes, max_distance ) : integer[]![]() A* 검색을 수행하여 시작점 또는 다각형부터 끝점까지 가장 가까운 경로를 찾습니다. 이 검색은 NavigationMesh.search()와 비슷하지만 이 함수는 끝점에 도달할 수 있는 경로가 없는 경우에도 항상 경로를 반환합니다.
|
self : | 이 함수가 작동하는 오브젝트 인스턴스를 지정합니다. 이 함수를 호출할 때에는 항상 이 self 매개변수를 제공해야 합니다. 도트(.) 호출 구문을 사용해야 하며, 객체 지향 콜론(:) 호출 구문을 사용하면 안 됩니다. 자세한 내용은 이 Stingray 도움말 항목, 또는 Lua 설명서의 이 페이지를 참조하십시오. | |
start : | any(number, stingray.Vector3) | 검색을 위한 시작점 또는 시작 다각형의 색인입니다. any(...) 표기는 이 항목이 괄호 내에 표시되는 어떠한 유형의 인스턴스도 될 수 있다는 의미입니다. |
end : | 검색을 위한 끝점입니다. Vector3여야 합니다. | |
focus : | number | 검색을 얼마나 적극적으로 해야 하는지 지정합니다. 1보다 큰 값은 적은 노드을 확장시키는 보다 적극적인 검색을 의미하는데, 이렇게 하면 절대적인 최단 경로를 찾지 못할 수도 있습니다. 예를 들어, 포커스가 1.2인 경우 반환되는 경로는 가능한 최단 경로보다 1.2배 더 길어도 됩니다. |
max_search_nodes : | integer | 검색 시 확인할 최대 그래프 노드 수를 지정합니다. 이는 검색 실행 시간을 제한하는 방법입니다. 값을 낮게 지정하면 두 노드 간 경로가 존재한다고 해도 이 경로를 찾지 못할 수도 있습니다. |
max_distance : | number | 검색 경로의 최대 거리를 지정합니다. 대상까지 이보다 짧은 다른 경로를 찾지 못한다면 빈 테이블이 반환됩니다. |
integer[] |
경로를 다각형 색인의 테이블로 반환합니다. [] 표기는 이 유형이 어레이임을 나타냅니다. 어레이는 구성원의 키가 순차적인 정수이며, 각 요소의 값이 표시된 유형의 인스턴스인 테이블입니다. |
끝점에 도달하지 못하는 경우에는 함수가 끝에 가장 가까운 경로를 반환합니다.
![]() |
polygon_neighbors ( self, poly ) : any(integer, nil)+![]() 지정된 색인의 다각형에 인접한 이웃 다각형들의 색인을 검색합니다.
|
self : | 이 함수가 작동하는 오브젝트 인스턴스를 지정합니다. 이 함수를 호출할 때에는 항상 이 self 매개변수를 제공해야 합니다. 도트(.) 호출 구문을 사용해야 하며, 객체 지향 콜론(:) 호출 구문을 사용하면 안 됩니다. 자세한 내용은 이 Stingray 도움말 항목, 또는 Lua 설명서의 이 페이지를 참조하십시오. | |
poly : | integer | 다각형의 색인입니다. |
any(integer, nil)+ |
색인 poly의 다각형에 인접한 이웃 다각형들의 색인을 반환합니다. 참고: 다각형의 모서리에 이웃이 없다면 해당하는 색인이 nil로 반환됩니다. + 표기는 지정된 유형의 인스턴스가 1개 이상 있을 수 있음을 나타냅니다. any(...) 표기는 이 항목이 괄호 내에 표시되는 어떠한 유형의 인스턴스도 될 수 있다는 의미입니다. |
![]() |
polygon_vertices ( self, poly ) : integer+![]() 지정된 색인의 다각형에 포함된 정점의 색인을 검색합니다.
|
self : | 이 함수가 작동하는 오브젝트 인스턴스를 지정합니다. 이 함수를 호출할 때에는 항상 이 self 매개변수를 제공해야 합니다. 도트(.) 호출 구문을 사용해야 하며, 객체 지향 콜론(:) 호출 구문을 사용하면 안 됩니다. 자세한 내용은 이 Stingray 도움말 항목, 또는 Lua 설명서의 이 페이지를 참조하십시오. | |
poly : | integer | 다각형의 색인입니다. |
integer+ |
다각형 정점의 색인을 반환합니다. + 표기는 지정된 유형의 인스턴스가 1개 이상 있을 수 있음을 나타냅니다. |
![]() |
project_to_polygon ( self, p, poly ) : stingray.Vector3![]() 시작점 p를 지정된 다각형의 평면에 투영합니다.
|
self : | 이 함수가 작동하는 오브젝트 인스턴스를 지정합니다. 이 함수를 호출할 때에는 항상 이 self 매개변수를 제공해야 합니다. 도트(.) 호출 구문을 사용해야 하며, 객체 지향 콜론(:) 호출 구문을 사용하면 안 됩니다. 자세한 내용은 이 Stingray 도움말 항목, 또는 Lua 설명서의 이 페이지를 참조하십시오. | |
p : | 투영하려는 점입니다. | |
poly : | integer | 다각형의 색인입니다. |
결과 위치입니다. |
![]() |
search ( self, start, start_pos, end, end_pos, focus, max_search_nodes, max_distance ) : integer[]![]() A* 검색을 수행하여 시작점 또는 다각형부터 끝점 또는 다각형까지 가장 짧은 경로를 찾고, 그 경로를 반환합니다.
|
self : | 이 함수가 작동하는 오브젝트 인스턴스를 지정합니다. 이 함수를 호출할 때에는 항상 이 self 매개변수를 제공해야 합니다. 도트(.) 호출 구문을 사용해야 하며, 객체 지향 콜론(:) 호출 구문을 사용하면 안 됩니다. 자세한 내용은 이 Stingray 도움말 항목, 또는 Lua 설명서의 이 페이지를 참조하십시오. | |
start : | number | 검색할 시작점의 색인입니다. |
start_pos : | 경로 검색을 진행하는 데 사용되는 시작 위치입니다. | |
end : | number | 검색할 끝점의 색인입니다. |
end_pos : | 경로 검색을 진행하는 데 사용되는 끝 위치입니다. | |
focus : | number | 검색을 얼마나 적극적으로 해야 하는지 지정합니다. 1보다 큰 값은 적은 노드을 확장시키는 보다 적극적인 검색을 의미하는데, 이렇게 하면 절대적인 최단 경로를 찾지 못할 수도 있습니다. 예를 들어, 포커스가 1.2인 경우 반환되는 경로는 가능한 최단 경로보다 1.2배 더 길어도 됩니다. |
max_search_nodes : | integer | 검색 시 확인할 최대 그래프 노드 수를 지정합니다. 이는 검색 실행 시간을 제한하는 방법입니다. 값을 낮게 지정하면 두 노드 간 경로가 존재한다고 해도 이 경로를 찾지 못할 수도 있습니다. |
max_distance : | number | 검색 경로의 최대 거리를 지정합니다. 대상까지 이보다 짧은 다른 경로를 찾지 못한다면 빈 테이블이 반환됩니다. |
integer[] |
경로를 다각형 색인 테이블로 반환하거나, 경로가 없으면 빈 테이블로 반환합니다. [] 표기는 이 유형이 어레이임을 나타냅니다. 어레이는 구성원의 키가 순차적인 정수이며, 각 요소의 값이 표시된 유형의 인스턴스인 테이블입니다. |
![]() |
search ( self, start, end, focus, max_search_nodes, max_distance ) : integer[]![]() A* 검색을 수행하여 시작점 또는 다각형부터 끝점 또는 다각형까지 가장 짧은 경로를 찾고, 그 경로를 반환합니다.
|
self : | 이 함수가 작동하는 오브젝트 인스턴스를 지정합니다. 이 함수를 호출할 때에는 항상 이 self 매개변수를 제공해야 합니다. 도트(.) 호출 구문을 사용해야 하며, 객체 지향 콜론(:) 호출 구문을 사용하면 안 됩니다. 자세한 내용은 이 Stingray 도움말 항목, 또는 Lua 설명서의 이 페이지를 참조하십시오. | |
start : | 검색을 위한 시작점입니다. NavigationMesh.find_polygon()을 내부적으로 호출하여 시작점을 찾습니다. | |
end : | 검색을 위한 끝점입니다. NavigationMesh.find_polygon()을 내부적으로 호출하여 시작점을 찾습니다. | |
focus : | number | 검색을 얼마나 적극적으로 해야 하는지 지정합니다. 1보다 큰 값은 적은 노드을 확장시키는 보다 적극적인 검색을 의미하는데, 이렇게 하면 절대적인 최단 경로를 찾지 못할 수도 있습니다. 예를 들어, 포커스가 1.2인 경우 반환되는 경로는 가능한 최단 경로보다 1.2배 더 길어도 됩니다. |
max_search_nodes : | integer | 검색 시 확인할 최대 그래프 노드 수를 지정합니다. 이는 검색 실행 시간을 제한하는 방법입니다. 값을 낮게 지정하면 두 노드 간 경로가 존재한다고 해도 이 경로를 찾지 못할 수도 있습니다. |
max_distance : | number | 검색 경로의 최대 거리를 지정합니다. 대상까지 이보다 짧은 다른 경로를 찾지 못한다면 빈 테이블이 반환됩니다. |
integer[] |
경로를 다각형 색인 테이블로 반환하거나, 경로가 없으면 빈 테이블로 반환합니다. [] 표기는 이 유형이 어레이임을 나타냅니다. 어레이는 구성원의 키가 순차적인 정수이며, 각 요소의 값이 표시된 유형의 인스턴스인 테이블입니다. |
![]() |
search ( self, start, end, focus, max_search_nodes, max_distance ) : integer[]![]() A* 검색을 수행하여 시작점 또는 다각형부터 끝점 또는 다각형까지 가장 짧은 경로를 찾고, 그 경로를 반환합니다.
|
self : | 이 함수가 작동하는 오브젝트 인스턴스를 지정합니다. 이 함수를 호출할 때에는 항상 이 self 매개변수를 제공해야 합니다. 도트(.) 호출 구문을 사용해야 하며, 객체 지향 콜론(:) 호출 구문을 사용하면 안 됩니다. 자세한 내용은 이 Stingray 도움말 항목, 또는 Lua 설명서의 이 페이지를 참조하십시오. | |
start : | number | 검색할 시작점의 색인입니다. |
end : | number | 검색할 끝점의 색인입니다. |
focus : | number | 검색을 얼마나 적극적으로 해야 하는지 지정합니다. 1보다 큰 값은 적은 노드을 확장시키는 보다 적극적인 검색을 의미하는데, 이렇게 하면 절대적인 최단 경로를 찾지 못할 수도 있습니다. 예를 들어, 포커스가 1.2인 경우 반환되는 경로는 가능한 최단 경로보다 1.2배 더 길어도 됩니다. |
max_search_nodes : | integer | 검색 시 확인할 최대 그래프 노드 수를 지정합니다. 이는 검색 실행 시간을 제한하는 방법입니다. 값을 낮게 지정하면 두 노드 간 경로가 존재한다고 해도 이 경로를 찾지 못할 수도 있습니다. |
max_distance : | number | 검색 경로의 최대 거리를 지정합니다. 대상까지 이보다 짧은 다른 경로를 찾지 못한다면 빈 테이블이 반환됩니다. |
integer[] |
경로를 다각형 색인 테이블로 반환하거나, 경로가 없으면 빈 테이블로 반환합니다. [] 표기는 이 유형이 어레이임을 나타냅니다. 어레이는 구성원의 키가 순차적인 정수이며, 각 요소의 값이 표시된 유형의 인스턴스인 테이블입니다. |
기타 관련 참조 항목
![]() |
set_obstructed ( self, poly, is_obstructed )![]() 메시의 지정된 색인에 있는 다각형의 차단 상태를 설정합니다.
|
self : | 이 함수가 작동하는 오브젝트 인스턴스를 지정합니다. 이 함수를 호출할 때에는 항상 이 self 매개변수를 제공해야 합니다. 도트(.) 호출 구문을 사용해야 하며, 객체 지향 콜론(:) 호출 구문을 사용하면 안 됩니다. 자세한 내용은 이 Stingray 도움말 항목, 또는 Lua 설명서의 이 페이지를 참조하십시오. | |
poly : | integer | 다각형의 색인입니다. |
is_obstructed : | boolean | 다각형을 차단된 것으로 표시하려면 true를, 그렇지 않으면 false를 사용합니다. |
이 함수는 아무 값도 반환하지 않습니다. |
![]() |
update_polygon ( self, p, poly ) : stingray.Vector3, stingray.Vector3, integer, boolean![]() 탐색 메시에서 캐릭터를 이동하는 데 사용됩니다.
|
self : | 이 함수가 작동하는 오브젝트 인스턴스를 지정합니다. 이 함수를 호출할 때에는 항상 이 self 매개변수를 제공해야 합니다. 도트(.) 호출 구문을 사용해야 하며, 객체 지향 콜론(:) 호출 구문을 사용하면 안 됩니다. 자세한 내용은 이 Stingray 도움말 항목, 또는 Lua 설명서의 이 페이지를 참조하십시오. | |
p : | 메시에 현지화하려는 점입니다. | |
poly : | integer | 이전 프레임에서 캐릭터가 점유한 다각형의 색인입니다. |
캐릭터의 새 위치(메시에 제약되어 있을 수 있음)입니다. | |
이제 캐릭터가 위치한 다각형의 법선입니다. | |
integer |
이제 캐릭터가 위치한 다각형의 색인입니다. |
boolean |
캐릭터를 제약해야 하면(메시 모서리와 충돌) true를 반환하고, 그렇지 않으면 false를 반환합니다. |
새로운 점 p 및 캐릭터가 마지막 프레임에서 위치했던 다각형의 색인 poly를 입력하면 이 함수는 현재 캐릭터가 위치하고 있는 다각형을 계산하고, 필요에 따라 이 캐릭터의 위치를 해당 탐색 메시로 제약합니다.
일반적인 사용 사례:
self.position = self.position + move_vector
self.position, self.normal, self.poly = NavigationMesh.update_polygon(self.mesh, self.position, self.poly)
![]() |
vertex ( self, v ) : stingray.Vector3![]() 지정된 색인의 정점 위치를 검색합니다.
|
self : | 이 함수가 작동하는 오브젝트 인스턴스를 지정합니다. 이 함수를 호출할 때에는 항상 이 self 매개변수를 제공해야 합니다. 도트(.) 호출 구문을 사용해야 하며, 객체 지향 콜론(:) 호출 구문을 사용하면 안 됩니다. 자세한 내용은 이 Stingray 도움말 항목, 또는 Lua 설명서의 이 페이지를 참조하십시오. | |
v : | integer | 정점의 색인입니다. |
정점의 위치입니다. |
![]() |
visualize_last_search ( self, lines )![]() 지정된 LineObject를 사용하여 마지막 검색을 디버깅용으로 시각화합니다.
|
self : | 이 함수가 작동하는 오브젝트 인스턴스를 지정합니다. 이 함수를 호출할 때에는 항상 이 self 매개변수를 제공해야 합니다. 도트(.) 호출 구문을 사용해야 하며, 객체 지향 콜론(:) 호출 구문을 사용하면 안 됩니다. 자세한 내용은 이 Stingray 도움말 항목, 또는 Lua 설명서의 이 페이지를 참조하십시오. | |
lines : | 경로를 그리는 데 사용할 LineObject를 지정합니다. |
이 함수는 아무 값도 반환하지 않습니다. |
검색한 경로는 노란색 선으로 그려지고, 해당 경로의 나머지 부분(확장되었지만 사용되지는 않은 노드들)은 파란색 선으로 그려집니다.
이 함수는 개발 빌드에서만 사용할 수 있습니다.