PathfindingService

Pokaż przestarzałe

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

Brak możliwości tworzenia
Usługa
Bez replikacji

Usługa wyszukiwania ścieżek jest używana do znalezienia logicznych ścieżek między dwoma punktami, zapewniając, że znaki mogą się poruszać między punktami bez wpadania w ściany lub inne przeszkody.Domyślnie obliczany jest najkrótszy ścieżka, ale możesz wdrożyć modyfikatory znajdowania ścieżek, aby obliczać bardziej inteligentne ścieżki w różnych materiałach, wokół zdefiniowanych regionów lub przez przeszkody.

Zobacz Wyszukiwanie ścieżki znaków dla szczegółów dotyczących użytkowania.

Właściwości

Metody

CreatePath

Parametry

agentParameters: Dictionary
Wartość domyślna: "nil"

Zwroty

Przykłady kodu

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

Wynik

Parametry

start: Vector3
Wartość domyślna: ""
finish: Vector3
Wartość domyślna: ""

Zwroty

Zdarzenia