Path
*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.
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
El éxito del generado Path .
Métodos
Regresa un array de puntos en el camino.
Comprueba si un camino está bloqueado a partir de un punto de inicio específico.
Computa un Path desde una posición de inicio a una posición de finalización.
Eventos
Dispara cuando el camino calculado se bloquea.
Dispara cuando un camino calculado que estaba bloqueado se desbloquea.
Propiedades
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
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
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
Devuelve
ComputeAsync
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
La posición del mundo donde comienza el camino calculado.
La posición del mundo donde termina el camino calculado.
Devuelve
Muestras de código
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
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.