PathfindingService

Tampilkan yang Tidak Digunakan Lagi

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.

Tidak Dapat Dibuat
Layanan
Tidak Direplikasi

PathfindingService digunakan untuk menemukan jalan logik antara dua titik, menjamin bahwa karakter dapat bergerak di antara titik tanpa menabrak dinding atau rintangan lainnya. Secara default, jalan paling pendek dihitung, tetapi Anda dapat mengaktifkan modifikator jalan untuk menghitung jalan yang lebih pintar di berbagai bahan, di sekitar wilayah yang didefinis, atau melalui rintangan.

Lihat Pemetaan Karakter untuk detail penggunaan.

Properti

Metode

CreatePath

Membuat objek Path berdasarkan berbagai parameter agen. Key dan nilai kunci dalam tabel agentParameters sebagai berikut:


<tbody>
<tr>
<td><b>AgentRadius</b></td>
<td>float</td>
<td>2</td>
<td>Mengukur jumlah ruang horisontal minimum yang diperlukan agar ruang kosong dianggap dapat dilalui.</td>
</tr>
<tr>
<td><b>Tinggi Agen</b></td>
<td>float</td>
<td>5</td>
<td>Mengidentifikasi jumlah ruang vertikal minimum yang dibutuhkan agar ruang kosong dianggap dapat dilalui.</td>
</tr>
<tr>
<td><b>AgentCanJump</b></td>
<td>boolean</td>
<td>benar</td>
<td>Menentukan apakah melompat selama pemetaan jalan diizinkan.</td>
</tr>
<tr>
<td><b>AgentCanClimb</b></td>
<td>boolean</td>
<td>benar</td>
<td>Menentukan apakah <code>Class.TrussPart|TrussParts</code> dapat diizinkan selama pemetaan jalan.</td>
</tr>
<tr>
<td><b>Pembersihan Titik Jalan</b></td>
<td>nomor</td>
<td>4</td>
<td>Mengukur jarak antara titik jalan tengah dalam path.</td>
</tr>
<tr>
<td><b>Biaya</b></td>
<td>tabel</td>
<td></td>
<td>Tabel material atau ditentukan <code>Class.Pathfindingmodified|PathfindingModifiers</code> dan "biayanya" untuk traversal. Berguna untuk membuat agen menyukai beberapa bahan/wilayah tertentu daripada yang lain. Lihat <a href="../../../characters/pathfinding.md#pathfinding-modifiers">di sini</a> untuk detail.</td>
</tr>
</tbody>
KunciJenisStandarDeskripsi

Parameter

agentParameters: Dictionary

Tabel Lua yang memungkinkan Anda menyesuaikan jalan untuk ukuran agen (manusia yang akan bergerak di jalan). Lihat di atas untuk kunci, jenis, dan deskripsi yang valid.

Nilai Default: "nil"

Memberikan nilai

Sebuah objek Path .

Contoh Kode

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

Hasil

Fungsi ini digunakan untuk menemukan Path di antara dua poin yang disediakan. Jalan ini menggunakan jaringan navigasi yang dibuat oleh PathfindingService dan memastikan bahwa jalan ini dapat diikuti oleh karakter Roblox ukuran biasa.

Fungsi ini mengembalikan objek Path yang mengandung koordinat jalan. Jika tidak ada jalan yang ditemukan di antara kedua titik, fungsi ini masih akan mengembalikan objek Path, tetapi status Path.Status akan menjadi 1> Enum.PathStatus.NoPath1> .

Untuk mendapatkan waypoints dari objek Path, Anda dapat menggunakan fungsi Path:GetWaypoints().

Parameter

start: Vector3

Koordinat awal jalan.

finish: Vector3

Koordinasi akhir jalan.


Memberikan nilai

Sebuah objek Path .

Acara