Path

Visualizza obsoleti

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

Non costruibile
Non Replicato

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

Metodi

Eventi

Proprietà

Sola Lettura
Non Replicato
Lettura Parallela

Il successo della generata Path .

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

Get Path Waypoints

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

Resa

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

start: number

Restituzioni

ComputeAsync

void
Resa

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

start: Vector3

La posizione mondiale in cui inizia il percorso calcolato.

finish: Vector3

La posizione mondiale in cui la strada calcolata finisce.


Restituzioni

void

Campioni di codice

Using the Pathfinding Service

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

blockedWaypointIdx: number

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.

Parametri

unblockedWaypointIdx: number