PathfindingService

사용되지 않는 항목 표시

*이 콘텐츠는 AI(베타)를 사용해 번역되었으며, 오류가 있을 수 있습니다. 이 페이지를 영어로 보려면 여기를 클릭하세요.

만들 수 없음
서비스
복제되지 않음

PathfindingService 는 벽이나 다른 장애물을 피하지 않고 캐릭터가 점 사이에서 이동할 수 있도록 합니다. 기본적으로 가장 짧은 경로가 계산되지만 벽이나 다른 장애물을 피하도록 경로 찾기 모드리퍼를 구현하여 다양한 재료, 정의된 영역 또는 장애물을 통해 더 지능적인

자세한 내용은 캐릭터 경로 찾기를 참조하십시오.

속성

메서드

CreatePath

다양한 에이전트 매개 변수에 따라 Path 개체를 생성합니다. agentParameters 테이블에 있는 유효한 키 및 값은 다음과 같습니다.


<tbody>
<tr>
<td><b>에이전트 라디오스</b></td>
<td>정수</td>
<td>2</td>
<td>공간을 횡단할 수 있는 최소 크기를 결정합니다.</td>
</tr>
<tr>
<td><b>에이전트 높이</b></td>
<td>정수</td>
<td>5</td>
<td>공간을 횡단할 수 있는 최소 크기를 결정합니다.</td>
</tr>
<tr>
<td><b>AgentCanJump</b></td>
<td>부울</td>
<td>참</td>
<td>경로 탐색 중에 점프할 수 있는지 여부를 결정합니다.</td>
</tr>
<tr>
<td><b>에이전트 등반 가능</b></td>
<td>부울</td>
<td>없음</td>
<td>경로 탐색 중에 <code>Class.TrussPart|TrussParts</code>를 클라이밍할 수 있는지 여부를 결정합니다.</td>
</tr>
<tr>
<td><b>방향 간격 지정</b></td>
<td>숫자</td>
<td>4</td>
<td>경로의 중간 지점 간의 간격을 결정합니다.</td>
</tr>
<tr>
<td><b>Costs</b></td>
<td>테이블</td>
<td></td>
<td>재료 테이블 또는 정의된 <code>Class.Pathfindingmodified|PathfindingModifiers</code> 및 이동에 대한 "비용"을 참조하십시오. 특정 재료/지역을 다른 재료/지역보다 선호하게 하려면 에 유용합니다. 자세한 내용은 <a href="../../../characters/pathfinding.md#pathfinding-modifiers">여기</a>에 참조하십시오.</td>
</tr>
</tbody>
유형기본설명

매개 변수

agentParameters: Dictionary

경로 크기를 조정하려는 경로에 대한 미세 조정 기능이 있는 Lua 테이블(경로에 따라 이동하는 인간형 개체의 개체). 위에서 유효한 키, 형식 및 설명을 참조하십시오.

기본값: "nil"

반환

Class.경로개체.

코드 샘플

Creating a Path with Pathfinding Service

local Workspace = game:GetService("Workspace")
local PathfindingService = game:GetService("PathfindingService")
-- This model contains a start, end and three paths between the player can walk on: Snow, Metal and LeafyGrass
local PathOptionsModel = script.Parent.PathOptions
local startPosition = PathOptionsModel.Start.Position
local finishPosition = PathOptionsModel.End.Position
-- Create a path that avoids Snow and Metal materials
-- This will ensure the path created avoids the Snow and Metal paths and guides
-- the user towards the LeafyGrass path
local path = PathfindingService:CreatePath({
AgentRadius = 3,
AgentHeight = 6,
AgentCanJump = false,
Costs = {
Snow = math.huge,
Metal = math.huge,
},
})
-- Compute the path
local success, errorMessage = pcall(function()
path:ComputeAsync(startPosition, finishPosition)
end)
-- Confirm the computation was successful
if success and path.Status == Enum.PathStatus.Success then
-- For each waypoint, create a part to visualize the path
for _, waypoint in path:GetWaypoints() do
local part = Instance.new("Part")
part.Position = waypoint.Position
part.Size = Vector3.new(0.5, 0.5, 0.5)
part.Color = Color3.new(1, 0, 1)
part.Anchored = true
part.CanCollide = false
part.Parent = Workspace
end
else
print(`Path unable to be computed, error: {errorMessage}`)
end

FindPathAsync

생성

이 함수는 제공된 두 점 사이에서 Path를 찾습니다. 이 경로는 PathfindingService 에서 생성한 탐색 그리드를 사용하며 정규 크기의 Roblox 캐릭터가 경로를 따라갈 수 있습니다.

이 함수는 경로의 좌표를 포함하는 Path 개체를 반환합니다. 두 점 사이에 경로가 없으면 이 함수는 Path 개체를 반환하지만, 그 개체의 Path.Status는 2> Class.Path.Status2> 이 됩니다.

Class.Path 개체의 경로를 가져오려면 Path:GetWaypoints() 함수를 사용할 수 있습니다.

매개 변수

start: Vector3

경로 시작 좌표.

finish: Vector3

경로 완료 좌표.


반환

Class.경로개체.

이벤트