ProximityPrompt objek mendorong interaksi pengguna untuk memicu tindakan ketika mereka mendekati objek di dalam pengalaman seperti pintu, saklar lampu, dan tombol. Menggunakan objek ini, Anda dapat:
- Menunjukkan objek apa yang dapat diinteraksi oleh pengguna dalam pengalaman.
- 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 muncul.
Dari menu, masukkan ProximityPrompt.

Sesuaikan prompt proksimitas
Anda dapat menyesuaikan prompt proksimitas berdasarkan bagaimana Anda ingin prompt tersebut tampil, kapan Anda ingin prompt tersebut terlihat, dan apa yang Anda inginkan pengguna lakukan untuk memicu tindakan.
Tampilan
Prompt proksimitas perlu mengkomunikasikan tiga hal:
- objek yang dapat diinteraksi oleh pengguna.
- tindakan yang dipicu ketika 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 pengguna.
KeyboardKeyCode Tombol keyboard yang harus ditekan atau ditahan pengguna untuk memicu tindakan.
GamepadKeyCode Tombol gamepad yang harus ditekan atau ditahan pengguna untuk memicu tindakan.

Visibilitas
Anda dapat mengontrol kapan prompt proksimitas terlihat melalui MaxActivationDistance, RequiresLineOfSight, dan Exclusivity.
MaxActivationDistance
Properti MaxActivationDistance memungkinkan Anda mendefinisikan jarak di 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 kamera, serta nilai properti Exclusivity masing-masing prompt proksimitas.

Interaktivitas
Anda dapat menyesuaikan bagaimana pengguna berinteraksi dengan prompt proksimitas melalui properti HoldDuration dan ClickablePrompt.
HoldDuration
Properti HoldDuration menentukan berapa detik yang harus dihabiskan pengguna untuk menekan tombol sebelum tindakan prompt proksimitas dipicu. Jika properti ini memiliki nilai 0, tindakan prompt proksimitas akan langsung dipicu.
ClickablePrompt
Properti ClickablePrompt menentukan apakah pengguna dapat mengklik pada 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 acara prompt proksimitas baik pada objek ProximityPrompt itu sendiri atau secara global melalui ProximityPromptService. ProximityPromptService memungkinkan Anda mengelola semua perilaku prompt proksimitas dari satu lokasi, mencegah kebutuhan untuk kode yang sama dalam pengalaman Anda.
| Event | Deskripsi |
|---|---|
| PromptTriggered | Dipicu ketika pemain berinteraksi dengan prompt proksimitas (setelah durasi untuk prompt dengan nilai HoldDuration tidak nol). |
| PromptTriggerEnded | Dipicu ketika pemain berhenti berinteraksi dengan prompt proksimitas. |
| PromptButtonHoldBegan | Dipicu ketika pemain mulai berinteraksi dengan prompt proksimitas dengan nilai HoldDuration yang tidak nol. |
| PromptButtonHoldEnded | Dipicu ketika pemain berhenti berinteraksi dengan prompt proksimitas dengan nilai HoldDuration yang tidak nol. |
| PromptShown | Dipicu di LocalScripts ketika prompt proksimitas ditampilkan. |
| PromptHidden | Dipicu di 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 mulai
local function onPromptHoldBegan(promptObject, player)
end
-- Deteksi ketika penahanan prompt berakhir
local function onPromptHoldEnded(promptObject, player)
end
-- Hubungkan acara prompt ke fungsi penanganan
ProximityPromptService.PromptTriggered:Connect(onPromptTriggered)
ProximityPromptService.PromptButtonHoldBegan:Connect(onPromptHoldBegan)
ProximityPromptService.PromptButtonHoldEnded:Connect(onPromptHoldEnded)