PathfindingService
*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.
PathfindingService wird verwendet, um logische Pfade zwischen zwei Punkten zu finden, um sicherzustellen, dass sich Zeichen zwischen den Punkten bewegen können, ohne in Wände oder andere Hindernisse zu stoßen.Standardmäßig wird der kürzeste Weg berechnet, aber du kannst Pfadfindungsmodifizierer implementieren, um intelligente Wege über verschiedene Materialien, um definierte Regionen oder durch Hindernisse zu berechnen.
Siehe Zeichenwegfindung für Details der Verwendung.
Zusammenfassung
Methoden
Findet ein Path zwischen den beiden angegebenen Punkten.
Eigenschaften
Methoden
CreatePath
Erstellt ein Path -Objekt basierend auf verschiedenen Agentenparametern. Gültige Schlüssel und Werte in der agentParameters -Tabelle sind wie folgt:
<th>Typ</th><th>Standardmäßig</th><th>Beschreibung</th></tr></thead><tbody><tr><td><b>Agentradius</b></td><td>ganzzahlig</td><td>2</td><td>Bestimmt die minimale Menge an horizontalem Raum, die für leeren Raum erforderlich ist, um als durchdringbar angesehen zu werden.</td></tr><tr><td><b>Agentenhöhe</b></td><td>ganzzahlig</td><td>5</td><td>Bestimmt die minimale Menge an vertikalem Raum, die für leere Räume erforderlich ist, um als durchdringbar angesehen zu werden.</td></tr><tr><td><b>AgentenKannSpringen</b></td><td>boolesisch</td><td>wahr</td><td>Bestimmt, ob das Springen während des Wegfindungsprozesses erlaubt ist.</td></tr><tr><td><b>Agentenkann klettern</b></td><td>boolesisch</td><td>falsch</td><td>Bestimmt, ob das Klettern von <code>Class.TrussPart|TrussParts</code> während des Wegfindungsprozesses erlaubt ist.</td></tr><tr><td><b>Wegpunkt-Abstand</b></td><td>zahl</td><td>4</td><td>Bestimmt die Abstände zwischen Zwischenhaltestellen im Weg.</td></tr><tr><td><b>Kosten</b></td><td>tabelle</td><td>{}</td><td>Tabelle der Materialien oder definierte <code>Class.PathfindingModifiedor|PathfindingModifizierer</code> und ihre "Kosten" für die Durchsuche.Nützlich, um den Agenten bestimmte Materialien/Regionen vorzuziehen gegenüber anderen.Siehe <a href="/characters/pathfinding#pathfinding-modifiers">hier</a> für Details.</td></tr></tbody>
Schlave |
---|
Parameter
Luau-Tabelle, mit der du den Weg für die Größe des Agenten (den Humanoiden, der entlang des Weges geht) feinabstimmen kannst.Siehe oben für gültige Schlüssel, Arten und Beschreibungen.
Rückgaben
Code-Beispiele
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
Diese Funktion wird verwendet, um eine Path zwischen zwei angegebenen Punkten zu finden.Dieser Weg verwendet die Navigationsgitter, die von PathfindingService erstellt wurde, und stellt sicher, dass der Weg von einem Roblox-Charakter mit normaler Größe gefolgt werden kann.
Diese Funktion gibt ein Path Objekt zurück, das die Koordinaten des Weges enthält.Wenn kein Weg zwischen den beiden Punkten gefunden wird, gibt diese Funktion immer noch ein Path Objekt zurück, aber das Objekt von diesem Path.Status wird Enum.PathStatus.NoPath sein.
Um die Wegpunkte eines Path Objekts zu erhalten, kannst du die Path:GetWaypoints() Funktion verwenden.
Parameter
Startkoordinaten des Weges.
Wegendkoordinaten abschließen.