PathfindingService
*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.
Usługa wyszukiwania ścieżek jest używana do znalezienia logicznych ścieżek między dwoma punktami, zapewniając, że znaki mogą się poruszać między punktami bez wpadania w ściany lub inne przeszkody.Domyślnie obliczany jest najkrótszy ścieżka, ale możesz wdrożyć modyfikatory znajdowania ścieżek, aby obliczać bardziej inteligentne ścieżki w różnych materiałach, wokół zdefiniowanych regionów lub przez przeszkody.
Zobacz Wyszukiwanie ścieżki znaków dla szczegółów dotyczących użytkowania.
Podsumowanie
Metody
Znajduje Path pomiędzy dwoma podanymi punktami.
Właściwości
Metody
CreatePath
Tworzy obiekt Path na podstawie różnych parametrów agenta. Poprawne klucze i wartości w tabeli agentParameters są następujące:
<th>Typ</th><th>Domyślny</th><th>Opis</th></tr></thead><tbody><tr><td><b>Promień agenta</b></td><td>liczba całkowita</td><td>2</td><td>Określa minimalną ilość przestrzeni poziomej wymaganą do rozważenia pustej przestrzeni jako przejezdnej.</td></tr><tr><td><b>Wysokość agenta</b></td><td>liczba całkowita</td><td>5</td><td>Określa minimalną ilość poziomego miejsca potrzebną do uznania pustej przestrzeni za przemieralną.</td></tr><tr><td><b>AgentMożeSkakać</b></td><td>booleanowy</td><td>prawda</td><td>Określa, czy dozwolone jest skakanie podczas wyszukiwania ścieżki.</td></tr><tr><td><b>AgentMożeWspinać</b></td><td>booleanowy</td><td>fałsz</td><td>Określa, czy wspinanie się <code>Class.TrussPart|TrussParts</code> podczas wyszukiwania ścieżki jest dozwolone.</td></tr><tr><td><b>Odległość punktów ścieżki</b></td><td>number liczba</td><td>4</td><td>Określa odległość między pośrednimi punktami drogi.</td></tr><tr><td><b>Koszty</b></td><td>stół</td><td>{}</td><td>Tabela materiałów lub zdefiniowana <code>Klasa.PathfindingModifier|PathfindingModifiers</code> i ich "koszt" za przeszukiwanie.Przydatne do tego, aby agent preferował pewne materiały/regiony nad innymi.Zobacz <a href="../../../characters/pathfinding.md#pathfinding-modifiers">tutaj</a> szczegóły.</td></tr></tbody>
Klucz |
---|
Parametry
Tabela Luau, która pozwala dostosować ścieżkę dla rozmiaru agenta (humanoida, który będzie poruszał się po ścieżce).Zobacz powyżej ważne klucze, typy i opisy.
Zwroty
Przykłady kodu
Demonstrates creating a path using PathfindingService:CreatePath()
'PathOptions' represents a Model with three paths made of different materials. When creating the path we define a large 'Cost' for two of the three paths materials. This will ensure the path created steers towards the path with the material of the lowest 'Cost'.
Once the path is created, small parts are created at each waypoint to visualize the path.
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
Funkcja ta jest używana do znalezienia Path między dwoma podanymi punktami.Ta ścieżka wykorzystuje siatkę nawigacyjną stworzoną przez PathfindingService i upewnia się, że ścieżka może być śledzona przez regularnej wielkości postać Roblox.
Funkcja ta zwraca obiekt Path, który zawiera koordynaty ścieżki.Jeśli nie znaleziono ścieżki między dwoma punktami, ta funkcja nadal zwróci obiekt , ale obiekt ten będzie .
Aby uzyskać punkty drogi obiektu Path, możesz użyć funkcji Path:GetWaypoints().
Parametry
Koordynaty początku ścieżki.
Koordynaty końca ścieżki.