Path

Mostrar obsoleto

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.

Não criável
Não replicado

Path objetos armazenam o resultado de caminhos criados por PathfindingService:CreatePath() .

Um objeto de caminho é criado quando um objeto

Além de ComputeAsync(), Path objetos têm o método GetWaypoints() que retorna uma lista de waypoints representando os pontos que um personagem deve seguir em sequência para chegar ao fim do caminho.

Finalmente, objetos Path podem ser conectados ao evento Class.Caminho.Blocked . Este evento será disparado se, em qualquer momento durante a existência do caminho, o caminho for bloqueado. Observe que isso pode ocorrer Path.Blocked de um personagem se movendo ao longo do caminho, não apenas na frente dele.

Resumo

Propriedades

Métodos

Eventos

Propriedades

Somente leitura
Não replicado
Ler Parallel

O sucesso do Path gerado.

Métodos

GetWaypoints

Essa função retorna um array de todos os PathWaypoints em um Path, como calculado por Path:ComputeAsync().

Cada ponto de referência na matriz especifica uma posição Vector3 e action para levar quando este PathWaypoint for atingido. O array é arranjado na ordem dos pontos de referência a partir do início do caminho até o terminar/parar/sairdo caminho.

Se um caminho não puder ser calculado, esta função retornará um matriz / listavazio.


Devolução

Um array de PathWaypoints ordenado a partir do início do caminho até o terminar/parar/sairdo caminho.

Amostras 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

Rendimentos

Essa função verifica se um caminho está bloqueado a partir do ponto de início indicado por começar .

Retorna o primeiro ponto de interrupção de occlusão, se for bloqueado, -1 se não. retorna um erro se start estiver menor que 0 ou maior que o número de pontos de interrupção na Path.

Parâmetros

start: number

Devolução

ComputeAsync

void
Rendimentos

Essa função calcula um Path a partir de uma posição de início para uma posição de fim. Essa função não é chamada automaticamente quando um caminho é criado e deve ser invocada sempre que o caminho precisa ser atualizado.

Uma vez que o Caminho é calculado, ele terá uma série de pontos de caminho que, quando seguidos, podem levar um personagem ao longo do caminho. Esses pontos são coletados com a função Path:GetWaypoints().

Parâmetros

start: Vector3

A posição mundial onde o caminho calculado começa.

finish: Vector3

A posição mundial onde o caminho calculado termina.


Devolução

void

Amostras 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

Fires quando o caminho calculado se torna bloqueado. Observe que caminhos podem ser bloqueados em algum lugar após o agente, como uma pilha de pedregulhos caindo em um caminho enquanto o agente corre. Veja Manuseio de Caminhos Bloqueados para detalhes sobre verificar o progresso do ponto de destino de um agente ao longo de um caminho.

Parâmetros

blockedWaypointIdx: number

Unblocked

Fires quando um caminho calculado que foi bloqueado se torna desbloqueado. Observe que um caminho bloqueado pode se tornar desbloqueado em algum lugar após o agente, o que efetivamente torna a reação a este evento necessária. Veja Manuseio de Caminhos Bloqueados para detalhes sobre verificar o progresso do ponto de reação de um agente ao longo de um caminho.

Parâmetros

unblockedWaypointIdx: number