PathfindingService

แสดงที่เลิกใช้งานแล้ว

*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่

ไม่สามารถสร้าง
บริการ
ไม่ซ้ำ

PathfindingService ใช้เพื่อค้นหาเส้นทางที่เหมาะสมระหว่างสองจุด, ให้แน่ใจว่าตัวละครสามารถเคลื่อนที่ระหว่างจุดได้โดยไม่ต้องกัดผนังหรืออุปสรรคอื่น โดยปกติ, เส้นทางที่ส

ดู การหาเส้นทางตัวละคร สำหรับรายละเอียดการใช้งาน

คุณสมบัติ

วิธีการ

CreatePath

สร้างวัตถุ Path ที่มีตัวแทนต่างๆ หลายอย่าง ของปุ่มและค่าในตาราง agentParameters ด้านล่างนี้คือ:


<tbody>
<tr>
<td><b>AgentRadius</b></td>
<td>ตัวเลข</td>
<td>2</td>
<td>กำหนดจำนวนพื้นที่แนวตั้งขั้นต่ำที่จำเป็นสำหรับพื้นที่ว่างเพื่อพิจารณาว่าพื้นที่นั้นสามารถเดินทางได้</td>
</tr>
<tr>
<td><b>ความสูงของเอเจนต์</b></td>
<td>ตัวเลข</td>
<td>5</td>
<td>กำหนดจำนวนพื้นที่แนวตั้งที่ต้องการสำหรับพื้นที่ว่างเพื่อพิจารณาว่าพื้นที่นั้นสามารถเดินทางได้</td>
</tr>
<tr>
<td><b>AgentCanJump ตัวแทน</b></td>
<td>บูลีน</td>
<td>จริง</td>
<td>กำหนดว่าคุณสามารถกระโดดในระหว่างการหาเส้นทางได้หรือไม่</td>
</tr>
<tr>
<td><b>AgentCanClimb เอเจนต์</b></td>
<td>บูลีน</td>
<td>ปลอม</td>
<td>กำหนดว่าคุณสามารถ <code>Class.TrussPart|TrussParts</code> ในระหว่างการนำทางได้หรือไม่</td>
</tr>
<tr>
<td><b>พื้นที่วายพอร์ต</b></td>
<td>จํานวน</td>
<td>4</td>
<td>กำหนดความห่างระหว่างจุดศูนย์กลางในเส้นทาง</td>
</tr>
<tr>
<td><b>ค่าใช้จ่าย</b></td>
<td>ตาราง</td>
<td></td>
<td>ตารางวัสดุหรือเรียกว่า <code>Class.Pathfindingmodified|PathfindingModifiers</code> และ "ค่าใช้จ่าย" สำหรับการเดินทาง มีประโยชน์สำหรับการทำให้เอเจนต์ชื่นชอบวัสดุ/ภูมิภาคบางอย่างมากกว่าคนอื่น ดูที่ <a href="../../../characters/pathfinding.md#pathfinding-modifiers">ที่นี่</a> สำ</td>
</tr>
</tbody>
กุญแจชนิดเริ่มต้นคำอธิบาย

พารามิเตอร์

agentParameters: Dictionary

ตาราง Lua ที่ช่วยให้คุณปรับแต่งเส้นทางสำหรับขนาดของตัวแทน (มนุษย์ที่จะเคลื่อนทางตามเส้นทาง) ดูด้านบนสำหรับกุญแจ รูปแบบ และคำอธิบาย

ค่าเริ่มต้น: "nil"

ส่งค่ากลับ

เป็นวัตถุ Path

ตัวอย่างโค้ด

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

ผลตอบแทน

ฟังก์ชันนี้ใช้เพื่อค้นหา Path ระหว่างสองจุดที่ให้ไว้ เส้นทางนี้ใช้เครือข่ายการนำทางที่สร้างโดย PathfindingService และตรวจสอบว่าเส้นทางนี้สามารถติดตามโดยตัวละคร Roblox

ฟังก์ชันนี้จะกลับมาเป็น Path วัตถุที่มีค่าตัวของเส้นทาง หากไม่พบเส้นทางระหว่างสองจุดนี้ ฟังก์ชันนี้จะยังกลับมาเป็น Path

เพื่อรับเส้นทางของวัตถุ Path คุณสามารถใช้ฟังก์ชัน Path:GetWaypoints() ได้

พารามิเตอร์

start: Vector3

เริ่มต้นเส้นทาง

finish: Vector3

จุดสิ้นสุดเส้นทาง


ส่งค่ากลับ

เป็นวัตถุ Path

อีเวนต์