ProximityPrompt objek mendorong interaksi pengguna untuk memicu tindakan saat mereka mendekati objek dalam permainan seperti pintu, saklar lampu, dan tombol. Menggunakan objek ini, Anda dapat:
- Menunjukkan objek apa yang dapat diinteraksi oleh pengguna dalam permainan.
- Menampilkan tindakan yang dapat diambil pengguna pada objek, kemudian memicu tindakan tersebut melalui input pengguna seperti menekan atau menahan tombol.
- Menampilkan input yang benar untuk semua jenis input, seperti keyboard, gamepad, dan tombol layar sentuh.
Buat prompt proksimitas
Anda harus mengaitkan prompt proksimitas ke bagian, model, atau lampiran yang ingin Anda interaksikan oleh pengguna. Untuk menambahkan prompt proksimitas ke objek BasePart, Model, atau Attachment:
Di jendela Explorer, arahkan mouse ke BasePart, Model, atau Attachment dan klik tombol ⊕. Menu kontekstual akan ditampilkan.
Dari menu, masukkan ProximityPrompt.

Kustomisasi prompt proksimitas
Anda dapat menyesuaikan prompt proksimitas berdasarkan bagaimana Anda ingin itu tampil, kapan Anda ingin itu terlihat, dan apa yang Anda ingin pengguna lakukan untuk memicu tindakan.
Penampilan
Prompt proksimitas perlu mengkomunikasikan tiga hal:
- objek yang dapat diinteraksi oleh pengguna.
- tindakan yang dipicu saat mereka berinteraksi dengan prompt proksimitas.
- tombol yang harus ditekan atau ditahan oleh pengguna.
Anda dapat menentukan ini melalui properti berikut:
ObjectText Nama opsional untuk objek yang dapat diinteraksi oleh pengguna.
ActionText Nama opsional untuk tindakan yang akan dipicu oleh pengguna.
KeyboardKeyCode Tombol keyboard yang harus ditekan atau ditahan oleh pengguna untuk memicu tindakan.
GamepadKeyCode Tombol gamepad yang harus ditekan atau ditahan oleh pengguna untuk memicu tindakan.

Visibilitas
Anda dapat mengontrol kapan prompt proksimitas terlihat melalui properti MaxActivationDistance, RequiresLineOfSight, dan Exclusivity.
MaxActivationDistance
Properti MaxActivationDistance memungkinkan Anda untuk mendefinisikan jarak dari sekitar objek ProximityPrompt yang mengaktifkan visibilitas prompt proksimitas. Setelah karakter pengguna memasuki jarak tersebut, prompt proksimitas menjadi terlihat.

RequiresLineOfSight
Properti RequiresLineOfSight mengaktifkan visibilitas prompt proksimitas ketika ada jalur yang jelas dari kamera ke objek ProximityPrompt. Secara default, properti ini diatur ke true.
Eksklusivitas
Jika karakter pengguna berada dalam jangkauan beberapa prompt proksimitas, visibilitas setiap prompt proksimitas tergantung pada prompt proksimitas mana yang ditunjuk oleh kamera, serta nilai properti Exclusivity dari setiap prompt proksimitas.

Interaktivitas
Anda dapat menyesuaikan bagaimana pengguna berinteraksi dengan prompt proksimitas melalui properti HoldDuration dan ClickablePrompt.
HoldDuration
Properti HoldDuration menentukan berapa detik pengguna harus menekan tombol sebelum tindakan prompt proksimitas dipicu. Jika properti ini memiliki nilai 0, tindakan prompt proksimitas dipicu segera.
ClickablePrompt
Properti ClickablePrompt menentukan apakah pengguna dapat mengklik prompt proksimitas untuk memicu tindakannya. Ketika diatur ke true, pengguna dapat berinteraksi dengan prompt proksimitas dengan mengklik langsung prompt proksimitas atau dengan menekan tombol yang ditentukan. Ketika diatur ke false, pengguna hanya dapat berinteraksi dengan prompt proksimitas dengan menekan tombol yang ditentukan.
Skrip prompt proksimitas
Anda dapat terhubung ke peristiwa prompt proksimitas baik pada objek ProximityPrompt itu sendiri atau secara global melalui ProximityPromptService. ProximityPromptService memungkinkan Anda untuk mengelola semua perilaku prompt proksimitas dari satu lokasi, mencegah kebutuhan untuk kode duplikat dalam permainan Anda.
| Peristiwa | Deskripsi |
|---|---|
| PromptTriggered | Terpicu ketika pemain berinteraksi dengan prompt proksimitas (setelah durasi untuk prompt dengan HoldDuration yang tidak nol). |
| PromptTriggerEnded | Terpicu ketika pemain berhenti berinteraksi dengan prompt proksimitas. |
| PromptButtonHoldBegan | Terpicu ketika pemain mulai berinteraksi dengan prompt proksimitas dengan nilai HoldDuration yang tidak nol. |
| PromptButtonHoldEnded | Terpicu ketika pemain berhenti berinteraksi dengan prompt proksimitas dengan nilai HoldDuration yang tidak nol. |
| PromptShown | Terpicu dalam LocalScripts ketika prompt proksimitas dibuat terlihat. |
| PromptHidden | Terpicu dalam LocalScripts ketika prompt disembunyikan. |
Contoh kode berikut mencakup kerangka dasar untuk menggunakan ProximityPromptService:
local ProximityPromptService = game:GetService("ProximityPromptService")
-- Deteksi ketika prompt dipicu
local function onPromptTriggered(promptObject, player)
end
-- Deteksi ketika penahanan prompt dimulai
local function onPromptHoldBegan(promptObject, player)
end
-- Deteksi ketika penahanan prompt berakhir
local function onPromptHoldEnded(promptObject, player)
end
-- Hubungkan peristiwa prompt ke fungsi penanganan
ProximityPromptService.PromptTriggered:Connect(onPromptTriggered)
ProximityPromptService.PromptButtonHoldBegan:Connect(onPromptHoldBegan)
ProximityPromptService.PromptButtonHoldEnded:Connect(onPromptHoldEnded)