Path

Afficher les obsolètes

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

Création impossible
Non répliqué

Path les objets stockent le résultat des chemins créés par PathfindingService:CreatePath() .

Une fois qu'un objet de chemin est créé, vous pouvez

En plus de ComputeAsync() , Path les objets ont le GetWaypoints() méthode qui renvoie une liste de points représentant les points qu'un personnage doit suivre en séquence pour obtenir du début au bout du chemin.

Enfin, Path objets peuvent être connectés à l'événement Path.Blocked. Cet événement se déclenchera si, à tout moment pendant l'existence du chemin, le chemin est bloqué. Remarquez que cela peut se produire 1>derrière1> un personnage se déplaçant le long du chemin, non pas seulement en front de lui.

Résumé

Propriétés

Méthodes

Évènements

Propriétés

Lecture uniquement
Non répliqué
Lecture parallèle

Le succès de la génération de Path .

Méthodes

GetWaypoints

Cette fonction renvoie un tableau de tous les PathWaypoints dans un Path, comme calculé par Path:ComputeAsync().

Chaque point de fin dans l'arrêt spécifie une position Vector3 et action à prendre lorsque ce point de fin est atteint. L'arrêt est organisé dans l'ordre des points de fin du chemin du début au chemin de terminer.

Si un chemin n'a pas pu être calculé, cette fonction renverra un matricevide.


Retours

Un tableau de PathWaypoints commandés du début du chemin au terminerdu chemin.

Échantillons de code

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

Rendement

Cette fonction vérifie si un chemin est bloqué à partir du point de départ indiqué par débuter .

Il renvoie le premier point d'ancrage d'occlusion si bloqué, -1 si non. il renvoie une erreur si début est inférieur à 0 ou supérieur au nombre de points d'ancrage dans le Path.

Paramètres

start: number

Retours

ComputeAsync

void
Rendement

Cette fonction calcule un Path à partir d'une position de départ à une position d'arrivée. Cette fonction n'est pas automatiquement appelée lorsqu'un chemin est créé et doit être invoquée à chaque fois que le chemin doit être mis à jour.

Une fois que le chemin est calculé, il aura une série de points de direction qui, lorsqu'ils sont suivis, peuvent mener un personnage le long du chemin. Ces points sont récupérés avec la fonction Path:GetWaypoints().

Paramètres

start: Vector3

La position du monde où le chemin calculé commence.

finish: Vector3

La position du monde où la voie calculée se termine.


Retours

void

Échantillons de code

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)

Évènements

Blocked

Se déclenche lorsque le chemin calculé devient bloqué. Remarquez que les chemins peuvent être bloqués quelque part derrière le bloc, comme un tas de gravier qui tombe sur un chemin alors que l'agent s'enfuit. Voir Gérer les chemins bloqués pour plus de détails sur la vérification de la progression du point de bloc d'un agent le long d'un chemin.

Paramètres

blockedWaypointIdx: number

Unblocked

Se déclenche lorsqu'un chemin calculé bloqué devient débloqué. Notez que un chemin bloqué peut devenir débloqué quelque part derrière l'agent, ce qui rend réaction à cet événement inutile. Voir Gérer les cheins bloqués pour plus de détails sur le suivi de la progression du point d'arrêt d'un agent le long d'un chemin.

Paramètres

unblockedWaypointIdx: number