PathfindingService
*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.
Layanan Penemuan Jalur digunakan untuk menemukan jalur logis antara dua titik, memastikan bahwa karakter dapat bergerak di antara titik tanpa menabrak dinding atau penghalang lainnya.Secara default, jalur pendek dihitung, tetapi Anda dapat menerapkan modifikasi penemuan jalur untuk menghitung jalur yang lebih pintar melintasi berbagai materi, di sekitar wilayah yang didefinisikan, atau melalui penghalang.
Lihat Pencarian Karakter untuk rincian penggunaan.
Rangkuman
Metode
Menemukan Path di antara dua titik yang disediakan.
Properti
Metode
CreatePath
Membuat objek Path berdasarkan berbagai parameter agen. Kunci dan nilai yang valid di tabel agentParameters adalah sebagai berikut:
<th>Jenis</th><th>Standar</th><th>Deskripsi</th></tr></thead><tbody><tr><td><b>Radius Agen</b></td><td>integer</td><td>2</td><td>Menentukan jumlah minimum ruang horizontal yang diperlukan agar ruang kosong dianggap dapat dilalui.</td></tr><tr><td><b>Tinggi Agen</b></td><td>integer</td><td>5</td><td>Menentukan jumlah minimum ruang vertikal yang diperlukan agar ruang kosong dianggap dapat dilalui.</td></tr><tr><td><b>AgenBisaMelompat</b></td><td>boolean</td><td>benar</td><td>Menentukan apakah melompat selama pencarian jalur diizinkan.</td></tr><tr><td><b>AgenDapatNaik</b></td><td>boolean</td><td>salah</td><td>Menentukan apakah pendakian <code>Class.TrussPart|TrussParts</code> selama penemuan jalur diizinkan.</td></tr><tr><td><b>Jarak Titik Waypoint</b></td><td>angka</td><td>4</td><td>Menentukan jarak antara titik jalur antara di jalur.</td></tr><tr><td><b>Biaya</b></td><td>meja</td><td>{}</td><td>Tabel materi atau didefinisikan <code>Class.PathfindingModifiedModifier|PathfindingModifiers</code> dan "biaya" mereka untuk melintasi.Berguna untuk membuat agen lebih memilih materi/wilayah tertentu daripada yang lain.Lihat <a href="/characters/pathfinding#pathfinding-modifiers">di sini</a> untuk rincian.</td></tr></tbody>
Kunci |
---|
Parameter
Meja Luau yang memungkinkan Anda menyesuaikan jalur untuk ukuran agen (humanoid yang akan bergerak di sepanjang jalur).Lihat di atas untuk kunci, jenis, dan deskripsi yang valid.
Memberikan nilai
Contoh Kode
Demonstrates creating a path using PathfindingService:CreatePath()
'PathOptions' represents a Model with three paths made of different materials. When creating the path we define a large 'Cost' for two of the three paths materials. This will ensure the path created steers towards the path with the material of the lowest 'Cost'.
Once the path is created, small parts are created at each waypoint to visualize the path.
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
Fungsi ini digunakan untuk menemukan Path antara dua titik yang disediakan.Jalur ini menggunakan grid navigasi yang dibuat oleh PathfindingService dan memastikan bahwa jalur dapat diikuti oleh karakter Roblox berukuran normal.
Fungsi ini mengembalikan objek Path yang berisi koordinat jalur.Jika tidak ada jalur yang ditemukan antara kedua titik, fungsi ini masih akan mengembalikan objek Path , tetapi objek itu Path.Status akan menjadi Enum.PathStatus.NoPath .
Untuk mendapatkan waypoint dari objek Path, Anda dapat menggunakan fungsi Path:GetWaypoints().
Parameter
Koordinat awal jalur.
Koordinat akhir jalur.