Anda dapat membuat prompt interaktif jarak dekat yang muncul saat pengguna mendekati objek di ruang 3D, lalu memicu tindakan pada input pengguna.
Tutorial ini menggunakan proyek Dungeon Delve sebagai pameran. Untuk mengikutinya, buka di Studio sebelum melanjutkan.

Buat perintah
Petunjuk di layar dibuat oleh objek ProximityPrompt yang diparentkan ke Attachment , BasePart , atau Model .
Pilih model Pintu Penjara di tampilan 3D atau dari Explorer ( Ruang Kerja → PromptObjek → Pintu Penjara ).
Perluas pohonnya dan pilih objek Pintu .
Menempatkan prompt di Attachment memberi Anda lebih banyak kontrol pada tempat di mana titik interaksi terjadi, dibandingkan dengan menempatkannya langsung di bagian/model.Sisipkan lampir baru dan ganti namanya menjadi PromptAttachment .
Temukan properti posisi dokumen baru dan atur ke -2.25 , -0.5 , - 0.5 .Ini akan memindahkannya di depan lubang kunci pintu.
Pasang di atas PromptAttachment dan masukkan objek baru ProximityPrompt .
penampilanprompt
Petunjuk terdiri dari tiga elemen utama, masing-masing dapat dikendalikan oleh properti berikut:

- Teks Objek — Nama opsional untuk objek yang berinteraksi.
- Nama Aksi Opsional — Nama aksi opsional yang ditampilkan kepada pengguna.
- Kode Kunci Keyboard — Kunci keyboard yang akan memicu prompt.
- Kode Kunci Gamepad — Tombol gamepad yang akan memicu prompt.
Untuk menyesuaikan penampilan pintu penjara, buat perubahan berikut:
Di jendela Properti, temukan properti ObjectText dan ketikkan di Pintu .
Untuk properti ActionText , ketikkan Pick Lock .
Jarak aktivasi
Petunjuk muncul ketika karakter pengguna bergerak di dalam rentang MaxActivationDistance yang didefinisikan dari orangtua objek prompt.

Nilai default bekerja dengan baik dalam kebanyakan kasus, tetapi Anda dapat mendorong interaksi pengguna lebih dekat ke kunci dengan mengubah MaxActivationDistance menjadi 4 .

Tahan durasi
Nilai properti Tahan Durasi menentukan seberapa cepat tindakan prompt dipicu, dalam beberapa detik.Karena pintu ini harus dipilih untuk membukanya, ubah properti Tahan Durasi menjadi 4 .

Laksanakan action
Cara terbaik untuk mendeteksi peristiwa prompt adalah melalui ProximityPromptService - ini memungkinkan Anda mendeteksi peristiwa secara sentral tanpa menempelkan skrip ke setiap objek prompt.
Sebuah framework dasar adalah sebagai berikut:
local ProximityPromptService = game:GetService("ProximityPromptService")
-- Deteksi ketika prompt diaktifkan
local function onPromptTriggered(promptObject, player)
end
-- Deteksi ketika prompt hold dimulai
local function onPromptHoldBegan(promptObject, player)
end
-- Deteksi ketika akhir tahan diperintahkan
local function onPromptHoldEnded(promptObject, player)
end
-- Hubungkan peristiwa prompt ke fungsi penanganan
ProximityPromptService.PromptTriggered:Connect(onPromptTriggered)
ProximityPromptService.PromptButtonHoldBegan:Connect(onPromptHoldBegan)
ProximityPromptService.PromptButtonHoldEnded:Connect(onPromptHoldEnded)
Peristiwa | Deskripsi |
---|---|
PromptTriggered | Memicu ketika pengguna berinteraksi dengan prompt ( setelah durasi untuk prompt dengan non-nol HoldDuration ). |
PromptButtonHoldBegan | Melepaskan api saat pengguna mulai berinteraksi dengan perintah non-nol HoldDuration. |
PromptButtonHoldEnded | Memicu ketika pengguna berhenti berinteraksi dengan perintah non-nol HoldDuration |
Dalam proyek Dungeon Delve, peristiwa ini dikelola oleh skrip PromptEvents dalam ServerScriptService .

Di dalam skrip, peristiwa di atas hanya memanggil fungsi di dalam ObjectActions ModuleScript , juga terletak di ServerScriptService .
local ProximityPromptService = game:GetService("ProximityPromptService")
local ServerScriptService = game:GetService("ServerScriptService")
local ObjectActions = require(ServerScriptService.ObjectActions)
-- Deteksi ketika prompt diaktifkan
local function onPromptTriggered(promptObject, player)
ObjectActions.promptTriggeredActions(promptObject, player)
end
-- Deteksi ketika prompt hold dimulai
local function onPromptHoldBegan(promptObject, player)
ObjectActions.promptHoldBeganActions(promptObject, player)
end
-- Deteksi ketika akhir tahan diperintahkan
local function onPromptHoldEnded(promptObject, player)
ObjectActions.promptHoldEndedActions(promptObject, player)
end
-- Hubungkan peristiwa prompt ke fungsi penanganan
ProximityPromptService.PromptTriggered:Connect(onPromptTriggered)
ProximityPromptService.PromptButtonHoldBegan:Connect(onPromptHoldBegan)
ProximityPromptService.PromptButtonHoldEnded:Connect(onPromptHoldEnded)
Prompt dekat adalah solusi yang nyaman dan dapat disesuaikan untuk interaksi objek dalam game.Periksa halaman referensi ProximityPrompt dan ProximityPromptService untuk lebih banyak cara untuk mengontrol perilaku prompt, dan jelajahi objek interaktif lain di Dungeon Delve untuk inspirasi kreatif.