Memulai
Tutorial menengah

Prompt Proksimitas

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

Anda dapat membuat prompt proksimitas interaktif yang muncul ketika pengguna mendekati objek di ruang 3D, kemudian memicu aksi berdasarkan input pengguna.

Tutorial ini menggunakan proyek Dungeon Delve sebagai contoh. Untuk mengikuti, buka proyek ini di Studio sebelum melanjutkan.

Opsi Edit di halaman utama pengalaman

Buat prompt

Prompt di layar dihasilkan oleh objek ProximityPrompt yang di-parent ke Attachment, BasePart, atau Model.

  1. Pilih model PrisonDoor di tampilan 3D atau dari Explorer (WorkspacePromptObjectsPrisonDoor).

  2. Perluas pohonnya dan pilih objek Door.

  3. Menempatkan prompt pada Attachment memberi Anda lebih banyak kontrol tentang di mana titik interaksi terjadi, dibandingkan menempatkannya langsung pada bagian/model. Sisipkan Attachment baru dan ganti namanya menjadi PromptAttachment.

  4. Temukan properti Position dari attachment baru dan setel ke -2.25, -0.5, -0.5. Ini akan memindahkannya di depan lubang kunci pintu.

  5. Arahkan mouse ke PromptAttachment dan sisipkan objek ProximityPrompt baru.

Penampilan prompt

Prompt terdiri dari tiga elemen utama, masing-masing dapat dikendalikan oleh properti berikut:

  • ObjectText — Nama opsional untuk objek yang berinteraksi.
  • ActionText — Nama aksi opsional yang ditampilkan kepada pengguna.
  • KeyboardKeyCode — Kunci keyboard yang akan memicu prompt.
  • GamepadKeyCode — Tombol gamepad yang akan memicu prompt.

Untuk menyesuaikan penampilan prompt pintu penjara, lakukan perubahan berikut:

  1. Di jendela Properties, temukan properti ObjectText dan ketik Door.

  2. Untuk properti ActionText, ketik Pick Lock.

Jarak aktivasi

Prompt muncul ketika karakter pengguna bergerak dalam jangkauan MaxActivationDistance yang ditentukan dari induk objek prompt.

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

Durasi tahan

Nilai properti HoldDuration menentukan seberapa cepat aksi prompt diaktifkan, dalam detik. Karena pintu ini harus dipilih untuk membukanya, ubah properti HoldDuration menjadi 4.

Implementasikan aksi

Cara terbaik untuk mendeteksi acara prompt adalah melalui ProximityPromptService — ini memungkinkan Anda mendeteksi acara secara terpusat tanpa melampirkan skrip ke setiap objek prompt.

Kerangka dasar adalah sebagai berikut:


local ProximityPromptService = game:GetService("ProximityPromptService")
-- Deteksi saat prompt dipicu
local function onPromptTriggered(promptObject, player)
end
-- Deteksi saat tahan prompt dimulai
local function onPromptHoldBegan(promptObject, player)
end
-- Deteksi saat tahan 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)
AcaraDeskripsi
PromptTriggeredDitembakkan ketika pengguna berinteraksi dengan prompt (setelah durasi untuk prompt dengan HoldDuration tidak nol).
PromptButtonHoldBeganDitembakkan ketika pengguna mulai berinteraksi dengan prompt yang memiliki HoldDuration tidak nol.
PromptButtonHoldEndedDitembakkan ketika pengguna berhenti berinteraksi dengan prompt yang memiliki HoldDuration tidak nol.

Dalam proyek Dungeon Delve, acara ini dikelola oleh skrip PromptEvents di dalam ServerScriptService.

Di dalam skrip, acara di atas hanya memanggil fungsi dalam ModuleScript ObjectActions, yang juga terletak di ServerScriptService.


local ProximityPromptService = game:GetService("ProximityPromptService")
local ServerScriptService = game:GetService("ServerScriptService")
local ObjectActions = require(ServerScriptService.ObjectActions)
-- Deteksi saat prompt dipicu
local function onPromptTriggered(promptObject, player)
ObjectActions.promptTriggeredActions(promptObject, player)
end
-- Deteksi saat tahan prompt dimulai
local function onPromptHoldBegan(promptObject, player)
ObjectActions.promptHoldBeganActions(promptObject, player)
end
-- Deteksi saat tahan prompt berakhir
local function onPromptHoldEnded(promptObject, player)
ObjectActions.promptHoldEndedActions(promptObject, player)
end
-- Hubungkan acara prompt ke fungsi penanganan
ProximityPromptService.PromptTriggered:Connect(onPromptTriggered)
ProximityPromptService.PromptButtonHoldBegan:Connect(onPromptHoldBegan)
ProximityPromptService.PromptButtonHoldEnded:Connect(onPromptHoldEnded)

Prompt proksimitas adalah solusi yang nyaman dan dapat disesuaikan untuk interaksi objek dalam permainan. Lihat halaman referensi ProximityPrompt dan ProximityPromptService untuk lebih banyak cara mengendalikan perilaku prompt, dan jelajahi objek interaktif lainnya dalam Dungeon Delve untuk inspirasi kreatif.

©2026 Roblox Corporation. Roblox, logo Roblox, dan Powering Imagination termasuk dalam merek dagang kami yang terdaftar dan tidak terdaftar di AS dan negara lainnya.