경로 개체는 PathfindingService:CreatePath() 에 의해 생성된 경로의 결과를 저장합니다.
경로 개체가 생성되면
Class.Path:ComputeAsync()|ComputeAsync() 외에도 Path 개체에는 GetWaypoints() 메서드가 있으며, 1>Class.Path1> 개체에는 4>Class.Path:GetWaypoints()|GetWaypoints()4> 목록이 포함되어 있습니다. 이는 시작에서 경로의 끝까지 순
마지막으로, Path 개체는 Class.Path.Blocked 이벤트에 연결될 수 있습니다. 이 이벤트는 경로 존재 기간 동안 발생하는 경로 차단 이벤트에 발생합니다. 참고로, 이 이벤트는 경로 이름의 뒤에 있는 문자 이동 경로에서만 발생
요약
메서드
경로에 있는 포인트 배열을 반환합니다.
특정 방향점에서 시작하는 경로가 차단되었는지 확인합니다.
시작 위치에서 Class.경로계산하고 종료 위치에서 종료합니다.
이벤트
계산된 경로가 차단되면 화재를 발생시킵니다.
계산된 경로가 차단된 상태에서 해제되면 실행됩니다.
속성
메서드
GetWaypoints
이 함수는 PathWaypoints 에서 계산된 모든 Path 배열을 반환합니다. Path:ComputeAsync() 에 의해 계산된 모든 배열을 반환합니다.
배열의 각 방향점은 Vector3 위치를 지정하고, action 를 사용하여 이 경로Waypoint에 도달할 때 수행할 수 있습니다. 배열은 경로 시작 순서로 방향점을 종료.
경로를 계산할 수 없으면 이 함수는 빈 배열을 반환합니다.
반환
경로 시작부터 경로 종료순서대로 PathWaypoints 배열.
코드 샘플
local PathfindingService = game:GetService("PathfindingService")
local path = PathfindingService:CreatePath()
local PATH_START = Vector3.new(0, 1, 0)
local PATH_END = Vector3.new(100, 1, 25)
path:ComputeAsync(PATH_START, PATH_END)
if path.Status == Enum.PathStatus.Success then
local waypoints = path:GetWaypoints()
for _, waypoint in pairs(waypoints) do
print(waypoint.Position)
end
end
CheckOcclusionAsync
이 함수는 시작 으로 지정된 방향점에서 시작하는 경로가 차단되는지 확인합니다.
차단되면 첫 번째 방향점의 위치를 반환합니다. -1 이 아닌 경우 오류가 반환됩니다. start 가 0 보다 작거나 Path 보다 큰 경우 오류가 반환됩니다.
매개 변수
반환
ComputeAsync
이 함수는 시작 위치에서 Path를 끝 위치로 계산합니다. 이 함수는 경로가 생성될 때 자동으로 호출되지 않으며 경로가 업데이트될 때마다 호출해야 합니다.
경로가 계산된 후 길을 따라 캐릭터를 이동할 수 있는 시리즈의 경로 포인트가 있습니다. 이 포인트는 Path:GetWaypoints() 함수로 수집됩니다.
매개 변수
반환
코드 샘플
local PathfindingService = game:GetService("PathfindingService")
local agentParams = {
AgentRadius = 2.0,
AgentHeight = 5.0,
AgentCanJump = false,
}
local currentWaypointIdx = 1
local path = PathfindingService:CreatePath(agentParams)
local humanoidRootPart = script.Parent:FindFirstChild("HumanoidRootPart")
local targetPosition = Vector3.new(50, 0, 50)
path:ComputeAsync(humanoidRootPart.Position, targetPosition)
-- When the path is blocked...
local function OnPathBlocked(blockedWaypointIdx)
-- Check if the obstacle is further down the path
if blockedWaypointIdx > currentWaypointIdx then
-- Recompute the path
path:ComputeAsync(humanoidRootPart.Position, targetPosition)
if path.Status == Enum.PathStatus.Success then
-- Retrieve update waypoint list with path:GetWaypoints()
-- and Continue walking towards target
else
-- Error, path not found
end
end
end
path.Blocked:Connect(OnPathBlocked)
이벤트
Blocked
계산된 경로가 차단되면 화면에 나타나는 경로 블록 화면에서 경로가 차단되는 경우가 있습니다. 경로 블록 화면에서 경로가 차단되는 경우 경로 블록 화면에서 경로 진행 상황을 확인하는 방법에 대해서는 계산된 경로 처리를 참조하십시오.
매개 변수
Unblocked
계산된 경로가 차단되었다가 차단 해제되면 화재가 발생합니다. 차단된 경로는 에이전트 뒤에서 효과적으로 반응하지 않도록 하는 경로 위치를 변경할 수 있습니다. 참조하십시오 경로 차단 진행 상황 모니터링 에 대한 자세한 내용은.