Path

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

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

ไม่สามารถสร้าง
ไม่ซ้ำ

เส้นทาง วัตถุเก็บผลของเส้นทางที่สร้างโดย PathfindingService:CreatePath()

เมื่อวัตถุเส้นทา

นอกจาก ComputeAsync() แล้วยังมีวัตถุ Path ที่มีวิธีการ GetWaypoints() ซึ่งสร้างรายการของวิธีการที่เป็นตัวแทนของตัวละครที่ติ

ในที่สุด, Path วัตถุสามารถเชื่อมต่อได้กับเหตุการณ์ Class.Path.Blocked เหตุการณ์นี้จะเกิดขึ้นหากเส้นทางถูกบล็อกใด ๆ ในระหว่างการเดิ

สรุป

คุณสมบัติ

  • อ่านอย่างเดียว
    ไม่ซ้ำ
    อ่านพร้อมๆ กัน

    ความสำเร็จของ Path ที่สร้าง

วิธีการ

  • กลับรายการจุดในเส้นทาง

  • ผลตอบแทน
    เลิกใช้แล้ว

    ตรวจสอบว่ามีเส้นทางถูกบล็อกจากจุดเริ่มต้นที่กำหนดหรือไม่

  • ComputeAsync(start : Vector3,finish : Vector3):void
    ผลตอบแทน

    คํานวณ Path จากตําแหน่งเริ่มต้นไปยังตําแหน่งสิ้นสุด

อีเวนต์

  • Blocked(blockedWaypointIdx : number):RBXScriptSignal

    เกิดขึ้นเมื่อเส้นทางที่คำนวณได้กลายเป็นบล็อก

  • Unblocked(unblockedWaypointIdx : number):RBXScriptSignal

    เกิดขึ้นเมื่อเส้นทางที่คำนวณได้ที่ปิดการปิดกั้นกลายเป็นเปิดการปิดกั้น

คุณสมบัติ

อ่านอย่างเดียว
ไม่ซ้ำ
อ่านพร้อมๆ กัน

ความสำเร็จของ Path ที่สร้าง

วิธีการ

GetWaypoints

ฟังก์ชันนี้กลับรายการของทั้งหมด PathWaypoints ใน Path โดยคำนวณโดย Path:ComputeAsync()

แต่ละจุดหมายในแมทริคกำหนดตำแหน่ง Vector3 และ action เมื่อได้รับ PathWaypoint นี้ ปิด

หากไม่สามารถคำนวณเส้นทางได้ ฟังก์ชันนี้จะกลับค่ารายการที่ว่างเปล่า


ส่งค่ากลับ

Datatype.PathWaypoint|PathWaypoints ปิด

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

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

ผลตอบแทน

ฟังก์ชันนี้ตรวจสอบว่ามีเส้นทางถูกบล็อกเริ่มต้นที่ เริ่ม ระบุ

มันกลับระยะที่หนึ่งของการปิดกั้นหากบล็อก, -1 หากไม่, มันกลับระยะที่หนึ่งของการปิดกั้นใน Path มีจำนวนเส้นทางเดินมากกว่า 0 หรือมากกว่าจำนวนเส้นทางเดินใน Class.Path นี้.

พารามิเตอร์

start: number

ส่งค่ากลับ

ComputeAsync

void
ผลตอบแทน

ฟังก์ชันนี้คํานวณ Class.Path จากตําแหน่งเริ่มต้นไปยังตําแหน่งสิ้นสุด ฟังก์ชันนี้ไม่ได้เรียกอัตโนมัติเมื่อเส้นทางถูกสร้างและต้องการให้เรียกทุกครั้งเมื่อเส้นทางต้องการอัปเดต

เมื่อเส้นทางถูกคำนวณจะมีตรวจทางต่างๆ ที่เมื่อติดตามจะสามารถนำตัวละครไปตามเส้นทางได้ จุดเหล่านี้รวบรวมด้วยฟังก์ชัน Path:GetWaypoints()

พารามิเตอร์

start: Vector3

ตำแหน่งโลกที่เส้นทางที่คํานวณได้เริ่มต้น

finish: Vector3

ตำแหน่งโลกที่เส้นทางที่คํานวณได้จบลง


ส่งค่ากลับ

void

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

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)

อีเวนต์

Blocked

เปิดให้เมื่อเส้นทางที่คำนวณได้กลายเป็นบล็อก หมายเหตุว่าเส้นทางอาจกลายเป็นบล็อกที่ใดบางที่ เช่น กองกรวดตกบนเส้นทางเมื่อเอเจนต์วิ่งออกไป ดู การจัดการเส้นท

พารามิเตอร์

blockedWaypointIdx: number

Unblocked

เปิดให้เมื่อเส้นทางที่คำนวณได้ที่ถูกบล็อกกลายเป็นไม่บล็อก หมายเหตุว่าเส้นทางที่ถูกบล็อกอาจกลายเป็นไม่บล็อกที่ใด ๆ ภายในเวลา หลัง ตัวเอเจนต์ ดู การ

พารามิเตอร์

unblockedWaypointIdx: number