Path
*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.
Path oggetti memorizzano il risultato delle vie create da PathfindingService:CreatePath() .
Una volta che un oggetto di percorso viene creato
Oltre a ComputeAsync() , Path oggetti hanno il metodo GetWaypoints() che restituisce un elenco di waypoint rappresentanti i punti che un personaggio dovrebbe seguire in sequenza per ottenere dall'inizio alla fine del percorso.
Infine, gli oggetti Path possono essere connessi all'evento Class.Path.Blocked . Questo evento si attiva se, in qualsiasi momento durante l'esistenza del percorso, il percorso è bloccato. Nota che questo può avvenire Path.Blocked a un personaggio che si muove lungo il percorso, non solo davanti a lui.
Sommario
Proprietà
Il successo della generata Path .
Metodi
Restituisce un array di punti nel percorso.
Controlla se un percorso è bloccato a partire da un punto di partenza specifico.
Calcola un Path da una posizione di partenza a una posizione di destinazione.
Eventi
Si attiva quando il percorso calcolato diventa bloccato.
Si attiva quando un percorso calcolato che è stato bloccato diventa non bloccato.
Proprietà
Metodi
GetWaypoints
Questa funzione restituisce un array di tutti i PathWaypoints in un Path , come calcolato da Path:ComputeAsync() .
Ogni punto di riferimento nell' array specifica una posizione Vector3 e action per prendere quando questo PathWaypoint viene raggiunto. L' array è ordinato nell'ordine dei punti di riferimento dalla partenza della strada alla Terminaredella strada.
Se un percorso non potrebbe essere calcolato, questa funzione restituirà un vettorevuoto.
Restituzioni
Un array di PathWaypoints ordinato dal punto di partenza alla Terminaredel percorso.
Campioni di codice
local PathfindingService = game:GetService("PathfindingService")
local path = PathfindingService:CreatePath()
local PATH_START = Vector3.new(0, 1, 0)
local PATH_END = Vector3.new(100, 1, 25)
path:ComputeAsync(PATH_START, PATH_END)
if path.Status == Enum.PathStatus.Success then
local waypoints = path:GetWaypoints()
for _, waypoint in pairs(waypoints) do
print(waypoint.Position)
end
end
CheckOcclusionAsync
Questa funzione controlla se un percorso è bloccato a partire dal punto di avvio indicato da inizio .
Restituisce il primo punto di interruzione dell'occlusione, se bloccato, -1 se non. restituisce un errore se inizio è inferiore a 0 o maggiore del numero di punti d'interruzione nel Path .
Parametri
Restituzioni
ComputeAsync
Questa funzione calcola un Path da una posizione di partenza a una posizione di destinazione. Questa funzione non viene chiamata automaticamente quando viene creato un percorso e deve essere richiesta ogni volta che il percorso deve essere aggiornato.
Una volta che il Path è stato calcolato, avrà una serie di waypoint che, quando seguiti, possono guidare un personaggio lungo il path. Questi punti vengono raccolti con la funzione Path:GetWaypoints() .
Parametri
La posizione mondiale in cui inizia il percorso calcolato.
La posizione mondiale in cui la strada calcolata finisce.
Restituzioni
Campioni di codice
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)
-- When the path is blocked...
local function OnPathBlocked(blockedWaypointIdx)
-- Check if the obstacle is further down the path
if blockedWaypointIdx > currentWaypointIdx then
-- Recompute the path
path:ComputeAsync(humanoidRootPart.Position, targetPosition)
if path.Status == Enum.PathStatus.Success then
-- Retrieve update waypoint list with path:GetWaypoints()
-- and Continue walking towards target
else
-- Error, path not found
end
end
end
path.Blocked:Connect(OnPathBlocked)
Eventi
Blocked
Si attiva quando il percorso calcolato diventa bloccato. Nota che i percorsi possono essere bloccati da qualche parte dietro l'agente, come un mucchio di roccia che cade su un percorso mentre l'agente corre via. Vedi Maneggiare i percorsi bloccati per i dettagli su controllare il progresso del punto di avanzata di un agente lungo un percorso.
Parametri
Unblocked
Si attiva quando un percorso calcolato che è stato bloccato diventa non bloccato. Nota che un percorso bloccato può diventare non bloccato in qualche punto dietro all'agente, rendendo effettivamente la reazione a questo evento inutile. Vedi Maneggiare i percorsi bloccati per i dettagli su controllare il progresso del punto di avanzata di un agente lungo un percorso.