PathfindingService

Visualizza obsoleti

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

Non costruibile
Assistenza
Non Replicato

PathfindingService viene utilizzato per trovare percorsi logici tra due punti, assicurando che i personaggi possano muoversi tra i punti senza correre in pareti o altri ostacoli. Per impostazione predefinita, il percorso più breve viene calcolato, ma puoi implementare modificatori di percorso per calcolare percorsi più intelligenti su diversi materiali, intorno a regioni definite o attraverso gli ostacoli.

Vedi Pathfinding dei caratteri per i dettagli di utilizzo.

Proprietà

Metodi

CreatePath

Crea un oggetto Path basato su diversi parametri dell'agente. Le chiavi e i valori validi nella tabella agentParameters sono i seguenti:


<tbody>
<tr>
<td><b>AgentRadius</b></td>
<td>integro</td>
<td>2</td>
<td>Determina la quantità minima di spazio orizzontale richiesta perché lo spazio vuoto sia considerato attraversabile.</td>
</tr>
<tr>
<td><b>Altezza dell'agente</b></td>
<td>integro</td>
<td>5</td>
<td>Determina la quantità minima di spazio verticale richiesta perché lo spazio vuoto sia considerato attraversabile.</td>
</tr>
<tr>
<td><b>AgentCanJump</b></td>
<td>booleano</td>
<td>vero</td>
<td>Determina se è permesso saltare durante la creazione del percorso.</td>
</tr>
<tr>
<td><b>AgentCanClimb</b></td>
<td>booleano</td>
<td>falso</td>
<td>Determina se è Class.TrussPart|TrussParts durante la creazione del percorso.</td>
</tr>
<tr>
<td><b>Spaziatura dei Waypoint</b></td>
<td>number</td>
<td>4</td>
<td>Determina lo spazio tra i punti di interruzione nella strada.</td>
</tr>
<tr>
<td><b>Costi</b></td>
<td>tabella</td>
<td></td>
<td>Tavola di materiali o definiti <code>Class.PathfindingModifier|PathfindingModifiers</code> e il loro "costo" per il passaggio. Utile per rendere l'agente preferire determinati materiali/regioni rispetto ad altri. Vedi <a href="../../../characters/pathfinding.md#pathfinding-modifiers">qui</a> per i dettagli.</td>
</tr>
</tbody>
ChiaveTipoPredefinitoDescrizione

Parametri

agentParameters: Dictionary

Tavola Lua che ti consente di mettere a punto il percorso per la dimensione dell'agente (il humanoid che si muoverà lungo il percorso). Vedi sopra per le chiavi, i tipi e le descrizioni valide.

Valore predefinito: "nil"

Restituzioni

Un oggetto Path .

Campioni di codice

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

Resa

Questa funzione viene utilizzata per trovare un Path tra due punti forniti. Questo percorso utilizza la griglia di navigazione creata da PathfindingService e assicura che il percorso possa essere seguito da un personaggio Roblox di dimensioni normali.

Questa funzione restituisce un oggetto Path che contiene le coordinate del percorso. Se non viene trovato alcun percorso tra i due punti, questa funzione restituirà comunque un oggetto Path , ma il suo stato Path.Status sarà 1> Enum.PathStatus.NoPath1> .

Per ottenere i waypoint di un oggetto Path, puoi usare la funzione Path:GetWaypoints().

Parametri

start: Vector3

Coordinate di partenza della strada.

finish: Vector3

Coordinate di fine percorso.


Restituzioni

Un oggetto Path .

Eventi