PathfindingService
*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.
PathfindingService được sử dụng để tìm các con đường hợp lý giữa hai điểm, đảm bảo cho các nhân vật có thể di chuyển giữa các điểm mà không bị chạy vào tường hoặc các vật cản khác. Bởi mặc định, con đường ngắn nhất được tín
Xem Tìm đường nhân vật để biết chi tiết sử dụng.
Tóm Tắt
Phương Pháp
Tìm thấy một Path giữa hai điểm được cung cấp.
Thuộc Tính
Phương Pháp
CreatePath
Tạo một Path đối tượng dựa trên các tham số đặc tính của các đặc vật. Các chìa khóa và giá trị hợp lệ trong bảng agentParameters như sau:
<tbody><tr><td><b>AgentRadius</b></td><td>số</td><td>2</td><td>Xác định số lượng không gian dọc tối thiểu cần thiết để không gian trống được xem xét là có thể di chuyển.</td></tr><tr><td><b>Chiều cao đặc vụ</b></td><td>số</td><td>5</td><td>Xác định số lượng không gian dọc tối thiểu cần thiết để không gian trống được xem xét là có thể di chuyển.</td></tr><tr><td><b>AgentCanJump</b></td><td>boolean</td><td>đúng</td><td>Xác định có phép nhảy trong quá trình tìm con đường hay không.</td></tr><tr><td><b>AgentCanClimb</b></td><td>boolean</td><td>đúng</td><td>Xác định có phải leo <code>Class.TrussPart|TrussParts</code> trong khi đang tìm con đường không.</td></tr><tr><td><b>Khoảng cách điểm Waypoint</b></td><td>con số</td><td>4</td><td>Xác định khoảng cách giữa các điểm dừng trung gian trong con đường.</td></tr><tr><td><b>Chi phí</b></td><td>bảng</td><td></td><td>Bảng vật liệu hoặc đã định <code>Class.Pathfindingmodified|PathfindingModifiers</code> và "chi phí" của chúng cho việc di chuyển. Hữu ích cho việc làm cho đặc biệt <a href="../../../characters/pathfinding.md#pathfinding-modifiers">vật liệu/khu vực nào</a> đối với các vật liệu khác nhau. Xem ở đây để chi tiết.</td></tr></tbody>
Chìa khóa | Kiểu | Mặc định | Mô tả |
---|
Tham Số
Lua table which lets you fine-tune the path for the size of the agent (người nhân vật di chuyển theo con đường). Xem trên để nhận các chìa khóa, loại và mô tả.
Lợi Nhuận
Mẫu mã
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
Hàm này được sử dụng để tìm một Path giữa hai điểm được cung cấp. Đường này sử dụng bảng điều hướng được tạo bởi PathfindingService và đảm bảo rằng con đường này có thể được theo dõi bởi một nhân vật Roblox có kích th
Hàm này trả về một Path đối tượng mà chứa các coord của con đường. Nếu không có con đường nào được tìm thấy giữa hai điểm, hàm này vẫn sẽ trả về một Path đối tượ
Để nhận đường dẫn của một đối tượng Path, bạn có thể sử dụng chức năng Path:GetWaypoints() .