PathfindingService

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
Servicio
No replicado

PathfindingService se usa para encontrar caminos lógicos entre dos puntos, asegurando que los personajes se puedan mover entre los puntos sin chocar contra paredes o otros obstáculos. Por defecto, el camino más corto se calcula, pero puede implementar modificadores de camino para calcular caminos más inteligentes entre varios materiales, alrededor de regiones definidas o a través de obstáculos.

Vea Character Pathfinding para obtener detalles de uso.

Propiedades

Métodos

CreatePath

Crea un objeto Path basado en varios parámetros de agente. Las llaves y valores válidos en la tabla agentParameters son los siguientes:


<tbody>
<tr>
<td><b>Agente de radio de acción</b></td>
<td>entero</td>
<td>2</td>
<td>Determina la cantidad mínima de espacio horizontal requerida para que el espacio vacío sea considerado atravesable.</td>
</tr>
<tr>
<td><b>Altura del agente</b></td>
<td>entero</td>
<td>5</td>
<td>Determina la cantidad mínima de espacio vertical requerida para que el espacio vacío sea considerado atravesable.</td>
</tr>
<tr>
<td><b>Agente puede saltar</b></td>
<td>booleano</td>
<td>cierto</td>
<td>Determina si se permite saltar durante el cálculo del camino.</td>
</tr>
<tr>
<td><b>Agente puede escalar</b></td>
<td>booleano</td>
<td>falso</td>
<td>Determina si se permite escalar <code>Class.TrussPart|TrussParts</code> durante la búsqueda de caminos.</td>
</tr>
<tr>
<td><b>Espacamiento de Waypoint</b></td>
<td>número</td>
<td>4</td>
<td>Determina el espaciado entre los puntos de intersección en el camino.</td>
</tr>
<tr>
<td><b>Costos</b></td>
<td>mesa</td>
<td></td>
<td>Tabla de materiales o definido <code>Class.Pathfindingmodified|PathfindingModifiers</code> y su "cost" para atravesar. Útil para hacer que el agente prefiere ciertos materiales/regiones sobre otros. Vea <a href="../../../characters/pathfinding.md#pathfinding-modifiers">aquí</a> para detalles.</td>
</tr>
</tbody>
ClaveTipoPor defectoDescripción

Parámetros

agentParameters: Dictionary

Tabla Lua que le permite ajustar el camino para el tamaño del agente (el humanoide que se moverá por el camino). Vea arriba para ver las llaves, tipos y descripciones válidas.

Valor predeterminado: "nil"

Devuelve

Un objeto Path

Muestras de código

Creating a Path with Pathfinding Service

local Workspace = game:GetService("Workspace")
local PathfindingService = game:GetService("PathfindingService")
-- This model contains a start, end and three paths between the player can walk on: Snow, Metal and LeafyGrass
local PathOptionsModel = script.Parent.PathOptions
local startPosition = PathOptionsModel.Start.Position
local finishPosition = PathOptionsModel.End.Position
-- Create a path that avoids Snow and Metal materials
-- This will ensure the path created avoids the Snow and Metal paths and guides
-- the user towards the LeafyGrass path
local path = PathfindingService:CreatePath({
AgentRadius = 3,
AgentHeight = 6,
AgentCanJump = false,
Costs = {
Snow = math.huge,
Metal = math.huge,
},
})
-- Compute the path
local success, errorMessage = pcall(function()
path:ComputeAsync(startPosition, finishPosition)
end)
-- Confirm the computation was successful
if success and path.Status == Enum.PathStatus.Success then
-- For each waypoint, create a part to visualize the path
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(`Path unable to be computed, error: {errorMessage}`)
end

FindPathAsync

Proporciona

Esta función se usa para encontrar un Path entre dos puntos proporcionados. Este camino usa la cuadrícula de navegación creada por PathfindingService y asegura que el camino se puede seguir por un personaje de Roblox de tamaño regular.

Esta función devuelve un objeto Path que contiene las coordenadas del camino. Si no se encuentra ningún camino entre los dos puntos, esta función todavía devolverá un objeto Path , pero su estado de Path.Status será 1> Enum.PathStatus.NoPath1> .

Para obtener los puntos de referencia de un objeto Path, puedes usar la función Path:GetWaypoints().

Parámetros

start: Vector3

Inicio de coordenadas de camino.

finish: Vector3

Coordinar la terminación del camino.


Devuelve

Un objeto Path

Eventos