Path

Mostrar obsoleto

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

No creable
No replicado

Path objetos almacenan el resultado de las rutas creadas por PathfindingService:CreatePath() .

Una vez que se crea un objeto de ruta, puedes

Además de ComputeAsync() , Path objetos tienen el método GetWaypoints() que devuelve una lista de waypoints representando los puntos que debe seguir en secuencia para obtener desde el principio hasta el final del camino.

Finalmente, los objetos Path pueden ser conectados al evento Class.ruta.Blocked . Este evento se activará si, en cualquier momento durante la existencia del camino, el camino está bloqueado. Tenga en cuenta que esto puede ocurrir Path.Blocked de un personaje que se mueve por el camino, no solo delante de él.

Resumen

Propiedades

Métodos

Eventos

Propiedades

Solo lectura
No replicado
Leer paralelo

El éxito del generado Path .

Métodos

GetWaypoints

Esta función devuelve un arreglo de todos los PathWaypoints en un Path , como se calcula por Path:ComputeAsync() .

Cada punto de intersección en el arreglo especifica una posición Vector3 y action para tomar cuando se alcanza este punto de intersección. El arreglo se ordena en la orden de los puntos de intersección desde el comienzo del camino hasta el finalizardel camino.

Si no se pudo calcular un camino, esta función devolverá un arreglo matriz/lista.


Devuelve

Un arreglo de PathWaypoints ordenado desde el principio del camino hasta el finalizardel camino.

Muestras de código

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

Proporciona

Esta función comprueba si se bloquea un camino que comienza en el punto de inicio indicado por empezar .

Devuelve el primer punto de intersección bloqueado, -1 si no. devuelve un error si empezar está menos que 0 o mayor que el número de puntos de intersección en el Path .

Parámetros

start: number

Devuelve

ComputeAsync

void
Proporciona

Esta función calcula un Path desde una posición de inicio a una posición de destino. Esta función no se llama automáticamente cuando se crea un camino y debe ser invocada cada vez que el camino debe ser actualizado.

Una vez que se haya calculado el Camino, tendrá una serie de puntos de referencia que, cuando se sigan, pueden llevar a un personaje a lo largo del Camino. Estos puntos se recopilan con la función Path:GetWaypoints() .

Parámetros

start: Vector3

La posición del mundo donde comienza el camino calculado.

finish: Vector3

La posición del mundo donde termina el camino calculado.


Devuelve

void

Muestras de código

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)

Eventos

Blocked

Se activa cuando el camino calculado se bloquea. Tenga en cuenta que los caminos pueden bloquearse en algún lugar detrás del agente, como una pila de escombro que cae en un camino a medida que el agente se aleja. Consulte Manipulando caminos bloqueados para obtener detalles sobre la verificación del progreso del punto de camino del agente a lo largo de un camino.

Parámetros

blockedWaypointIdx: number

Unblocked

Se activa cuando un camino calculado que estaba bloqueado se desbloquea. Tenga en cuenta que un camino bloqueado puede desbloquearse en algún lugar detrás del agente, lo que hace que la reacción a este evento sea innecesaria. Vea Manipulando caminos bloqueados para obtener detalles sobre la verificación del progreso del punto de enfoque de un agente a lo largo de un camino.

Parámetros

unblockedWaypointIdx: number