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, garantendo che i personaggi possano muoversi tra i punti senza incappare in muri o altri ostacoli.Per impostazione predefinita, viene calcolato il percorso più breve, ma puoi implementare i modificatori di pathfinding per calcolare percorsi più intelligenti attraverso vari materiali, intorno a regioni definite o attraverso ostacoli.

Vedi Character Pathfinding per i dettagli dell'uso.

Proprietà

Metodi

CreatePath

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


<th>Tipo</th>
<th>Basilare</th>
<th>Descrizione</th>
</tr>
</thead>
<tbody>
<tr>
<td><b>AgenteRadius</b></td>
<td>integro</td>
<td>2</td>
<td>Determina la quantità minima di spazio orizzontale richiesta per lo spazio vuoto da considerare percorribile.</td>
</tr>
<tr>
<td><b>Altezza agente</b></td>
<td>integro</td>
<td>5</td>
<td>Determina la quantità minima di spazio verticale richiesta per lo spazio vuoto da considerare percorribile.</td>
</tr>
<tr>
<td><b>AgenteCanJump</b></td>
<td>booleano</td>
<td>vero</td>
<td>Determina se è consentito saltare durante la ricerca del percorso.</td>
</tr>
<tr>
<td><b>AgenteCanClimb</b></td>
<td>booleano</td>
<td>fallito</td>
<td>Determina se è consentito salire <code>Class.TrussPart|TrussParts</code> durante la ricerca del percorso.</td>
</tr>
<tr>
<td><b>Spaziatura dei punti di interesse</b></td>
<td>numbero</td>
<td>4</td>
<td>Determina lo spazio tra i punti di percorso intermedi nel percorso.</td>
</tr>
<tr>
<td><b>Costi</b></td>
<td>tavola</td>
<td>{}</td>
<td>Tabella dei materiali o definita <code>Class.PathfindingModifiedore|PathfindingModifiers</code> e il loro "costo" per la navigazione.Utile per far preferire all'agente determinati materiali/regioni rispetto ad altri.Vedi <a href="/characters/pathfinding#pathfinding-modifiers">qui</a> per i dettagli.</td>
</tr>
</tbody>
Chiave

Parametri

agentParameters: Dictionary

Tavola Luau che ti consente di ottimizzare il percorso per le dimensioni dell'agente (l'oidoide che si muoverà lungo il percorso).Vedi sopra per le chiavi, i tipi e le descrizioni valide.

Valore predefinito: "nil"

Restituzioni

Un oggetto Path A.

Campioni di codice

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

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 l'oggetto Path.Status di quell'oggetto sarà Enum.PathStatus.NoPath .

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

Parametri

start: Vector3

Coordinate di inizio percorso.

Valore predefinito: ""
finish: Vector3

Coordinate di fine percorso.

Valore predefinito: ""

Restituzioni

Un oggetto Path A.

Eventi