Impara
Classe motore
PathfindingService
Non costruibile
Assistenza
Non Replicato

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


Sommario
Proprietà
Metodi
ComputeRawPathAsync(start: Vector3,finish: Vector3,maxDistance: number):Path
Obsoleto
ComputeSmoothPathAsync(start: Vector3,finish: Vector3,maxDistance: number):Path
Obsoleto
CreatePath(agentParameters: Dictionary):Path
FindPathAsync(start: Vector3,finish: Vector3):Path
Obsoleto
Membri ereditati
Campioni di codice
Utilizzare il servizio di navigazione
local PathfindingService = game:GetService("PathfindingService")
local agentParams = {
AgentRadius = 2.0,
AgentHeight = 5.0,
AgentCanJump = false,
}
local currentWaypointIdx = 1
local path = PathfindingService:CreatePath(agentParams)
local humanoidRootPart = script.Parent:FindFirstChild("HumanoidRootPart")
local targetPosition = Vector3.new(50, 0, 50)
path:ComputeAsync(humanoidRootPart.Position, targetPosition)
-- Quando il percorso è bloccato...
local function OnPathBlocked(blockedWaypointIdx)
-- Controlla se l'ostacolo è più avanti nel percorso
if blockedWaypointIdx > currentWaypointIdx then
-- Ricalcola il percorso
path:ComputeAsync(humanoidRootPart.Position, targetPosition)
if path.Status == Enum.PathStatus.Success then
-- Recupera l'elenco delle waypoint aggiornate con path:GetWaypoints()
-- e continua a camminare verso l'obiettivo
else
-- Errore, percorso non trovato
end
end
end
path.Blocked:Connect(OnPathBlocked)

Riferimento API
Proprietà
EmptyCutoff
Obsoleto

Metodi
ComputeRawPathAsync
Obsoleto

ComputeSmoothPathAsync
Obsoleto

CreatePath
Capacità: Basic
PathfindingService:CreatePath(agentParameters:Dictionary):Path
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
Obsoleto

© 2026 Roblox Corporation. Roblox, il logo Roblox e Powering Imagination sono tra i nostri marchi registrati e non registrati negli Stati Uniti. e altri paesi.