PathfindingService

Veraltete anzeigen

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

Nicht erstellbar
Dienst
Nicht repliziert

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.

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

agentParameters: Dictionary

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.

Standardwert: "nil"

Rückgaben

Ein Path Objekt.

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.

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

Angehalten

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

start: Vector3

Startkoordinaten des Weges.

Standardwert: ""
finish: Vector3

Wegendkoordinaten abschließen.

Standardwert: ""

Rückgaben

Ein Path Objekt.

Ereignisse