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 incontrare muri o altri ostacoli. Per impostazione predefinita, viene calcolato il percorso più breve, ma puoi implementare modificatori di pathfinding per calcolare percorsi più intelligenti attraverso vari materiali, attorno a regioni definite o attraverso ostacoli.

Consulta Character Pathfinding per dettagli dell'uso.

Proprietà

Metodi

CreatePath

Parametri

agentParameters: Dictionary
Valore predefinito: "nil"

Restituzioni

Campioni di codice

Creare un percorso con il servizio Pathfinding

local Workspace = game:GetService("Workspace")
local PathfindingService = game:GetService("PathfindingService")
-- Questo modello contiene un inizio, una fine e tre percorsi su cui il giocatore può camminare: Neve, Metallo e ErbaFoglia
local PathOptionsModel = script.Parent.PathOptions
local startPosition = PathOptionsModel.Start.Position
local finishPosition = PathOptionsModel.End.Position
-- Crea un percorso che evita i materiali Neve e Metallo
-- Questo garantirà che il percorso creato eviti i percorsi di Neve e Metallo e guidi
-- l'utente verso il percorso di ErbaFoglia
local path = PathfindingService:CreatePath({
AgentRadius = 3,
AgentHeight = 6,
AgentCanJump = false,
Costs = {
Snow = math.huge,
Metal = math.huge,
},
})
-- Calcola il percorso
local success, errorMessage = pcall(function()
path:ComputeAsync(startPosition, finishPosition)
end)
-- Conferma che il calcolo sia andato a buon fine
if success and path.Status == Enum.PathStatus.Success then
-- Per ogni waypoint, crea un elemento per visualizzare il percorso
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(`Impossibile calcolare il percorso, errore: {errorMessage}`)
end

FindPathAsync

Resa

Parametri

start: Vector3
finish: Vector3

Restituzioni

Eventi