PathfindingService

Pokaż przestarzałe

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

Brak możliwości tworzenia
Usługa
Bez replikacji

PathfindingService służy do znalezienia logicznych ścieżek między dwoma punktami, zapewniając, że postacie mogą poruszać się między punktami bez kłopotów z bieżącymi ścianami lub innymi przeszkodami. Domyślnie najkrótsza ścieżka jest obliczana, ale możesz zaimplementować modyfikatory ścieżek, aby obliczyć bardziej inteligentne ścieżki w różnych materiałach, wokół zdef

Zobacz Charakter Pathfinding dla szczegółów użycia.

Właściwości

Metody

CreatePath

Tworzy obiekt Path oparty na różnych parametrach agenta. Poprawne klucze i wartości w tabeli agentParameters są następujące:


<tbody>
<tr>
<td><b>AgentRadius</b></td>
<td>liczby</td>
<td>2</td>
<td>Określa minimalną ilość poziomego przestrzeń wymaganą do uznania pustej przestrzeni za przechodzącą.</td>
</tr>
<tr>
<td><b>Wysokość Agentów</b></td>
<td>liczby</td>
<td>5</td>
<td>Określa minimalną ilość poziomego przestrzeń wymaganą do uznania pustej przestrzeni za przechodnią.</td>
</tr>
<tr>
<td><b>AgentCanJump</b></td>
<td>boolean</td>
<td>prawdziwy</td>
<td>Określa, czy można skakać podczas znajdywania drogi.</td>
</tr>
<tr>
<td><b>AgentCanClimb</b></td>
<td>boolean</td>
<td>fałszywy</td>
<td>Określa, czy <code>Class.TrussPart|TrussParts</code> można włączyć podczas znalezienia ścieżki.</td>
</tr>
<tr>
<td><b>Odległość Waypoint</b></td>
<td>liczba</td>
<td>4</td>
<td>Określa przestrzeń między punktami końcowymi w drodze.</td>
</tr>
<tr>
<td><b>Koszty</b></td>
<td>tabela</td>
<td></td>
<td>Tabela materiałów lub zdefiniowanych <code>Class.Pathfindingmodified|PathfindingModifiers</code> i ich "koszt" dla przejścia. Przydatne do uczynienia agenta preferowanymi materiałami/regionami nad innymi. Zobacz <a href="../../../characters/pathfinding.md#pathfinding-modifiers">tutaj</a> dla szczegółów.</td>
</tr>
</tbody>
KluczTypDomyślnyOpis

Parametry

agentParameters: Dictionary

Lua-tabela, która pozwala na dostosowanie ścieżki do rozmiarów agencji (humanoid, który będzie się poruszać po ścieżce). Zobacz powyżej, aby uzyskać klucze, rodzaje i opisy.

Wartość domyślna: "nil"

Zwroty

Obiekt Path.

Przykłady kodu

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

Wynik

Funkcja ta jest używana do znalezienia Path między dwoma dostępnymi punktami. Ta droga używa sieci przeglądarki stworzonej przez PathfindingService i upewnia się, że droga może być podążana przez normalnie rozmiarowanego postaci Roblox.

Funkcja ta zwraca obiekt Path, który zawiera koordynaty drogi. Jeśli nie znaleziono drogi między dwoma punktami, funkcja ta nadal zwraca obiekt Path, ale jego stan będzie Path.Status.

Aby uzyskać Path obiektu, możesz użyć funkcji Path:GetWaypoints().

Parametry

start: Vector3

Koordynaty początkowe ścieżki.

finish: Vector3

Końcowe koordynaty ścieżki.


Zwroty

Obiekt Path.

Zdarzenia