NavigationMesh - stingray.NavigationMesh 오브젝트 참조 - Stingray Lua API 참조

stingray.NavigationMesh 오브젝트 참조

설명

수준 내 탐색 메시입니다.

함수

매개변수

self :

stingray.NavigationMesh

이 함수가 작동하는 오브젝트 인스턴스를 지정합니다.

이 함수를 호출할 때에는 항상self 매개변수를 제공해야 합니다. 도트(.) 호출 구문을 사용해야 하며, 객체 지향 콜론(:) 호출 구문을 사용하면 안 됩니다. 자세한 내용은 이 Stingray 도움말 항목, 또는 Lua 설명서의 이 페이지를 참조하십시오.

p :

stingray.Vector3

제약하려는 점입니다.

poly :

integer

다각형의 색인입니다.

반환하는 항목

stingray.Vector3

결과 위치입니다.

boolean

시작점이 원래 다각형 외부에 있어 이 함수 결과로 인해 이동된 경우 true를 반환합니다.

매개변수

world :

stingray.World

메시를 소유하는 표준입니다.

mesh :

stingray.NavigationMesh

삭제하려는 메시입니다.

반환하는 항목
이 함수는 아무 값도 반환하지 않습니다.

이 함수는 NavigationMesh.merge()를 통해 생성한 메시에 대해서만 호출해야 합니다.

참고: 메시를 꼭 삭제할 필요는 없습니다. 메시는 표준이 삭제되면 자동으로 삭제됩니다. 메모리가 바로 필요한 경우에만 메시를 명시적으로 삭제하십시오.

매개변수

self :

stingray.NavigationMesh

이 함수가 작동하는 오브젝트 인스턴스를 지정합니다.

이 함수를 호출할 때에는 항상self 매개변수를 제공해야 합니다. 도트(.) 호출 구문을 사용해야 하며, 객체 지향 콜론(:) 호출 구문을 사용하면 안 됩니다. 자세한 내용은 이 Stingray 도움말 항목, 또는 Lua 설명서의 이 페이지를 참조하십시오.

p :

stingray.Vector3

시작점입니다.

반환하는 항목

integer

가장 가까운 다각형의 색인입니다.

이 함수는 점 p가 메시 외부에 있는 경우에도 색인을 반환합니다.

매개변수

self :

stingray.NavigationMesh

이 함수가 작동하는 오브젝트 인스턴스를 지정합니다.

이 함수를 호출할 때에는 항상self 매개변수를 제공해야 합니다. 도트(.) 호출 구문을 사용해야 하며, 객체 지향 콜론(:) 호출 구문을 사용하면 안 됩니다. 자세한 내용은 이 Stingray 도움말 항목, 또는 Lua 설명서의 이 페이지를 참조하십시오.

p :

stingray.Vector3

시작점입니다.

반환하는 항목

integer?

가장 가까운 다각형의 색인을 반환하거나, 점이 메시 외부에 있는 경우 nil을 반환합니다.

? 표기는 이 유형이 선택 사항임을 나타냅니다. 해당 인스턴스가 0개 또는 한 개일 수 있습니다.
매개변수

self :

stingray.NavigationMesh

이 함수가 작동하는 오브젝트 인스턴스를 지정합니다.

이 함수를 호출할 때에는 항상self 매개변수를 제공해야 합니다. 도트(.) 호출 구문을 사용해야 하며, 객체 지향 콜론(:) 호출 구문을 사용하면 안 됩니다. 자세한 내용은 이 Stingray 도움말 항목, 또는 Lua 설명서의 이 페이지를 참조하십시오.

path :

table

다각형 경로입니다. NavigationMesh.search()에 의해 반환된 경로가 한 예입니다.

반환하는 항목

integer[]

경로 왼쪽의 모서리 정점 목록입니다.

[] 표기는 이 유형이 어레이임을 나타냅니다. 어레이는 구성원의 키가 순차적인 정수이며, 각 요소의 값이 표시된 유형의 인스턴스인 테이블입니다.

integer[]

경로 오른쪽의 모서리 정점 목록입니다.

[] 표기는 이 유형이 어레이임을 나타냅니다. 어레이는 구성원의 키가 순차적인 정수이며, 각 요소의 값이 표시된 유형의 인스턴스인 테이블입니다.

이 함수는 깔때기 알고리즘을 구현하는 데 사용할 수 있습니다. simple stupid funnel algorithm을 참조하십시오.

참고: 목록의 다각형이 팬을 형성하고 있으면 반환된 목록에서 정점이 반복될 수 있습니다. 반환된 목록에는 #path - 1개 항목(교차하는 각각의 다각형 모서리마다 항목 하나씩)이 포함됩니다.

매개변수

self :

stingray.NavigationMesh

이 함수가 작동하는 오브젝트 인스턴스를 지정합니다.

이 함수를 호출할 때에는 항상self 매개변수를 제공해야 합니다. 도트(.) 호출 구문을 사용해야 하며, 객체 지향 콜론(:) 호출 구문을 사용하면 안 됩니다. 자세한 내용은 이 Stingray 도움말 항목, 또는 Lua 설명서의 이 페이지를 참조하십시오.

poly :

integer

다각형의 색인입니다.

반환하는 항목

boolean

메시의 지정된 색인에 있는 노드가 차단되는 경우 true를, 그렇지 않으면 false를 반환합니다.

매개변수

world :

stingray.World

새로운 메시를 소유하는 표준입니다.

meshes :

stingray.NavigationMesh[]

병합할 탐색 메시가 나열되어 있는 테이블입니다.

[] 표기는 이 유형이 어레이임을 나타냅니다. 어레이는 구성원의 키가 순차적인 정수이며, 각 요소의 값이 표시된 유형의 인스턴스인 테이블입니다.

merge_tolerance :

number

인접한 두 정점을 병합하기 위한 최대 거리(미터)입니다. 예를 들어, merge_tolerance0.5로 설정되어 있으면 서로 간의 거리가 50cm가 안 되는 모든 탐색 메시 정점이 병합됩니다.

반환하는 항목

stingray.NavigationMesh

새로 생성된 탐색 메시입니다.

이 함수를 호출하면 표준이 소유하는 새로운 NavigationMesh가 생성됩니다. 이 메시는 표준이 삭제되면 자동으로 삭제됩니다. 탐색 메시를 먼저 삭제하고 싶다면 명시적으로 NavigationMesh.destroy() 함수를 사용하면 됩니다.

병합이 작동하려면 모든 정점이 병합된 모서리상에서 서로 일치해야 합니다. 모서리가 하나라도 어긋나면 병합이 작동하지 않습니다. 예를 들면 다음과 같습니다.

병합이 작동합니다. 정점이 일치합니다.

병합이 작동하지 않습니다.

매개변수
이 함수는 어떠한 매개변수도 수용하지 않습니다.
반환하는 항목

integer

메시에 있는 다각형의 수입니다.

매개변수
이 함수는 어떠한 매개변수도 수용하지 않습니다.
반환하는 항목

integer

메시에 있는 정점 수입니다.

매개변수

self :

stingray.NavigationMesh

이 함수가 작동하는 오브젝트 인스턴스를 지정합니다.

이 함수를 호출할 때에는 항상self 매개변수를 제공해야 합니다. 도트(.) 호출 구문을 사용해야 하며, 객체 지향 콜론(:) 호출 구문을 사용하면 안 됩니다. 자세한 내용은 이 Stingray 도움말 항목, 또는 Lua 설명서의 이 페이지를 참조하십시오.

start :

any(number, stingray.Vector3)

검색을 위한 시작점 또는 시작 다각형의 색인입니다.

any(...) 표기는 이 항목이 괄호 내에 표시되는 어떠한 유형의 인스턴스도 될 수 있다는 의미입니다.

end :

stingray.Vector3

검색을 위한 끝점입니다. Vector3여야 합니다.

focus :

number

검색을 얼마나 적극적으로 해야 하는지 지정합니다. 1보다 큰 값은 적은 노드을 확장시키는 보다 적극적인 검색을 의미하는데, 이렇게 하면 절대적인 최단 경로를 찾지 못할 수도 있습니다. 예를 들어, 포커스가 1.2인 경우 반환되는 경로는 가능한 최단 경로보다 1.2배 더 길어도 됩니다.

max_search_nodes :

integer

검색 시 확인할 최대 그래프 노드 수를 지정합니다. 이는 검색 실행 시간을 제한하는 방법입니다. 값을 낮게 지정하면 두 노드 간 경로가 존재한다고 해도 이 경로를 찾지 못할 수도 있습니다.

max_distance :

number

검색 경로의 최대 거리를 지정합니다. 대상까지 이보다 짧은 다른 경로를 찾지 못한다면 빈 테이블이 반환됩니다.

반환하는 항목

integer[]

경로를 다각형 색인의 테이블로 반환합니다.

[] 표기는 이 유형이 어레이임을 나타냅니다. 어레이는 구성원의 키가 순차적인 정수이며, 각 요소의 값이 표시된 유형의 인스턴스인 테이블입니다.

끝점에 도달하지 못하는 경우에는 함수가 끝에 가장 가까운 경로를 반환합니다.

매개변수

self :

stingray.NavigationMesh

이 함수가 작동하는 오브젝트 인스턴스를 지정합니다.

이 함수를 호출할 때에는 항상self 매개변수를 제공해야 합니다. 도트(.) 호출 구문을 사용해야 하며, 객체 지향 콜론(:) 호출 구문을 사용하면 안 됩니다. 자세한 내용은 이 Stingray 도움말 항목, 또는 Lua 설명서의 이 페이지를 참조하십시오.

poly :

integer

다각형의 색인입니다.

반환하는 항목

any(integer, nil)+

색인 poly의 다각형에 인접한 이웃 다각형들의 색인을 반환합니다.

참고: 다각형의 모서리에 이웃이 없다면 해당하는 색인이 nil로 반환됩니다.

+ 표기는 지정된 유형의 인스턴스가 1개 이상 있을 수 있음을 나타냅니다.
any(...) 표기는 이 항목이 괄호 내에 표시되는 어떠한 유형의 인스턴스도 될 수 있다는 의미입니다.
매개변수

self :

stingray.NavigationMesh

이 함수가 작동하는 오브젝트 인스턴스를 지정합니다.

이 함수를 호출할 때에는 항상self 매개변수를 제공해야 합니다. 도트(.) 호출 구문을 사용해야 하며, 객체 지향 콜론(:) 호출 구문을 사용하면 안 됩니다. 자세한 내용은 이 Stingray 도움말 항목, 또는 Lua 설명서의 이 페이지를 참조하십시오.

poly :

integer

다각형의 색인입니다.

반환하는 항목

integer+

다각형 정점의 색인을 반환합니다.

+ 표기는 지정된 유형의 인스턴스가 1개 이상 있을 수 있음을 나타냅니다.
매개변수

self :

stingray.NavigationMesh

이 함수가 작동하는 오브젝트 인스턴스를 지정합니다.

이 함수를 호출할 때에는 항상self 매개변수를 제공해야 합니다. 도트(.) 호출 구문을 사용해야 하며, 객체 지향 콜론(:) 호출 구문을 사용하면 안 됩니다. 자세한 내용은 이 Stingray 도움말 항목, 또는 Lua 설명서의 이 페이지를 참조하십시오.

p :

stingray.Vector3

투영하려는 점입니다.

poly :

integer

다각형의 색인입니다.

반환하는 항목

stingray.Vector3

결과 위치입니다.

매개변수

self :

stingray.NavigationMesh

이 함수가 작동하는 오브젝트 인스턴스를 지정합니다.

이 함수를 호출할 때에는 항상self 매개변수를 제공해야 합니다. 도트(.) 호출 구문을 사용해야 하며, 객체 지향 콜론(:) 호출 구문을 사용하면 안 됩니다. 자세한 내용은 이 Stingray 도움말 항목, 또는 Lua 설명서의 이 페이지를 참조하십시오.

start :

number

검색할 시작점의 색인입니다.

start_pos :

stingray.Vector3

경로 검색을 진행하는 데 사용되는 시작 위치입니다.

end :

number

검색할 끝점의 색인입니다.

end_pos :

stingray.Vector3

경로 검색을 진행하는 데 사용되는 끝 위치입니다.

focus :

number

검색을 얼마나 적극적으로 해야 하는지 지정합니다. 1보다 큰 값은 적은 노드을 확장시키는 보다 적극적인 검색을 의미하는데, 이렇게 하면 절대적인 최단 경로를 찾지 못할 수도 있습니다. 예를 들어, 포커스가 1.2인 경우 반환되는 경로는 가능한 최단 경로보다 1.2배 더 길어도 됩니다.

max_search_nodes :

integer

검색 시 확인할 최대 그래프 노드 수를 지정합니다. 이는 검색 실행 시간을 제한하는 방법입니다. 값을 낮게 지정하면 두 노드 간 경로가 존재한다고 해도 이 경로를 찾지 못할 수도 있습니다.

max_distance :

number

검색 경로의 최대 거리를 지정합니다. 대상까지 이보다 짧은 다른 경로를 찾지 못한다면 빈 테이블이 반환됩니다.

반환하는 항목

integer[]

경로를 다각형 색인 테이블로 반환하거나, 경로가 없으면 빈 테이블로 반환합니다.

[] 표기는 이 유형이 어레이임을 나타냅니다. 어레이는 구성원의 키가 순차적인 정수이며, 각 요소의 값이 표시된 유형의 인스턴스인 테이블입니다.
매개변수

self :

stingray.NavigationMesh

이 함수가 작동하는 오브젝트 인스턴스를 지정합니다.

이 함수를 호출할 때에는 항상self 매개변수를 제공해야 합니다. 도트(.) 호출 구문을 사용해야 하며, 객체 지향 콜론(:) 호출 구문을 사용하면 안 됩니다. 자세한 내용은 이 Stingray 도움말 항목, 또는 Lua 설명서의 이 페이지를 참조하십시오.

start :

stingray.Vector3

검색을 위한 시작점입니다. NavigationMesh.find_polygon()을 내부적으로 호출하여 시작점을 찾습니다.

end :

stingray.Vector3

검색을 위한 끝점입니다. NavigationMesh.find_polygon()을 내부적으로 호출하여 시작점을 찾습니다.

focus :

number

검색을 얼마나 적극적으로 해야 하는지 지정합니다. 1보다 큰 값은 적은 노드을 확장시키는 보다 적극적인 검색을 의미하는데, 이렇게 하면 절대적인 최단 경로를 찾지 못할 수도 있습니다. 예를 들어, 포커스가 1.2인 경우 반환되는 경로는 가능한 최단 경로보다 1.2배 더 길어도 됩니다.

max_search_nodes :

integer

검색 시 확인할 최대 그래프 노드 수를 지정합니다. 이는 검색 실행 시간을 제한하는 방법입니다. 값을 낮게 지정하면 두 노드 간 경로가 존재한다고 해도 이 경로를 찾지 못할 수도 있습니다.

max_distance :

number

검색 경로의 최대 거리를 지정합니다. 대상까지 이보다 짧은 다른 경로를 찾지 못한다면 빈 테이블이 반환됩니다.

반환하는 항목

integer[]

경로를 다각형 색인 테이블로 반환하거나, 경로가 없으면 빈 테이블로 반환합니다.

[] 표기는 이 유형이 어레이임을 나타냅니다. 어레이는 구성원의 키가 순차적인 정수이며, 각 요소의 값이 표시된 유형의 인스턴스인 테이블입니다.
매개변수

self :

stingray.NavigationMesh

이 함수가 작동하는 오브젝트 인스턴스를 지정합니다.

이 함수를 호출할 때에는 항상self 매개변수를 제공해야 합니다. 도트(.) 호출 구문을 사용해야 하며, 객체 지향 콜론(:) 호출 구문을 사용하면 안 됩니다. 자세한 내용은 이 Stingray 도움말 항목, 또는 Lua 설명서의 이 페이지를 참조하십시오.

start :

number

검색할 시작점의 색인입니다.

end :

number

검색할 끝점의 색인입니다.

focus :

number

검색을 얼마나 적극적으로 해야 하는지 지정합니다. 1보다 큰 값은 적은 노드을 확장시키는 보다 적극적인 검색을 의미하는데, 이렇게 하면 절대적인 최단 경로를 찾지 못할 수도 있습니다. 예를 들어, 포커스가 1.2인 경우 반환되는 경로는 가능한 최단 경로보다 1.2배 더 길어도 됩니다.

max_search_nodes :

integer

검색 시 확인할 최대 그래프 노드 수를 지정합니다. 이는 검색 실행 시간을 제한하는 방법입니다. 값을 낮게 지정하면 두 노드 간 경로가 존재한다고 해도 이 경로를 찾지 못할 수도 있습니다.

max_distance :

number

검색 경로의 최대 거리를 지정합니다. 대상까지 이보다 짧은 다른 경로를 찾지 못한다면 빈 테이블이 반환됩니다.

반환하는 항목

integer[]

경로를 다각형 색인 테이블로 반환하거나, 경로가 없으면 빈 테이블로 반환합니다.

[] 표기는 이 유형이 어레이임을 나타냅니다. 어레이는 구성원의 키가 순차적인 정수이며, 각 요소의 값이 표시된 유형의 인스턴스인 테이블입니다.
매개변수

self :

stingray.NavigationMesh

이 함수가 작동하는 오브젝트 인스턴스를 지정합니다.

이 함수를 호출할 때에는 항상self 매개변수를 제공해야 합니다. 도트(.) 호출 구문을 사용해야 하며, 객체 지향 콜론(:) 호출 구문을 사용하면 안 됩니다. 자세한 내용은 이 Stingray 도움말 항목, 또는 Lua 설명서의 이 페이지를 참조하십시오.

poly :

integer

다각형의 색인입니다.

is_obstructed :

boolean

다각형을 차단된 것으로 표시하려면 true를, 그렇지 않으면 false를 사용합니다.

반환하는 항목
이 함수는 아무 값도 반환하지 않습니다.
매개변수

self :

stingray.NavigationMesh

이 함수가 작동하는 오브젝트 인스턴스를 지정합니다.

이 함수를 호출할 때에는 항상self 매개변수를 제공해야 합니다. 도트(.) 호출 구문을 사용해야 하며, 객체 지향 콜론(:) 호출 구문을 사용하면 안 됩니다. 자세한 내용은 이 Stingray 도움말 항목, 또는 Lua 설명서의 이 페이지를 참조하십시오.

p :

stingray.Vector3

메시에 현지화하려는 점입니다.

poly :

integer

이전 프레임에서 캐릭터가 점유한 다각형의 색인입니다.

반환하는 항목

stingray.Vector3

캐릭터의 새 위치(메시에 제약되어 있을 수 있음)입니다.

stingray.Vector3

이제 캐릭터가 위치한 다각형의 법선입니다.

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)
매개변수

self :

stingray.NavigationMesh

이 함수가 작동하는 오브젝트 인스턴스를 지정합니다.

이 함수를 호출할 때에는 항상self 매개변수를 제공해야 합니다. 도트(.) 호출 구문을 사용해야 하며, 객체 지향 콜론(:) 호출 구문을 사용하면 안 됩니다. 자세한 내용은 이 Stingray 도움말 항목, 또는 Lua 설명서의 이 페이지를 참조하십시오.

v :

integer

정점의 색인입니다.

반환하는 항목

stingray.Vector3

정점의 위치입니다.

매개변수

self :

stingray.NavigationMesh

이 함수가 작동하는 오브젝트 인스턴스를 지정합니다.

이 함수를 호출할 때에는 항상self 매개변수를 제공해야 합니다. 도트(.) 호출 구문을 사용해야 하며, 객체 지향 콜론(:) 호출 구문을 사용하면 안 됩니다. 자세한 내용은 이 Stingray 도움말 항목, 또는 Lua 설명서의 이 페이지를 참조하십시오.

lines :

stingray.LineObject

경로를 그리는 데 사용할 LineObject를 지정합니다.

반환하는 항목
이 함수는 아무 값도 반환하지 않습니다.

검색한 경로는 노란색 선으로 그려지고, 해당 경로의 나머지 부분(확장되었지만 사용되지는 않은 노드들)은 파란색 선으로 그려집니다.

이 함수는 개발 빌드에서만 사용할 수 있습니다.