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 tindakan berdasarkan input pengguna.

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

Opsi Edit di Studio dari halaman utama permainan

Buat prompt

Prompt di layar dihasilkan oleh objek ProximityPrompt yang diparent 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 lampiran baru dan atur ke -2.25, -0.5, -0.5. Ini akan memindahkannya di depan lubang kunci pintu.

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

Penampilan prompt

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

  • ObjectText — Nama opsional untuk objek yang berinteraksi.
  • ActionText — Nama tindakan 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 bekerja dengan baik dalam kebanyakan kasus, tetapi Anda dapat mendorong interaksi pengguna lebih dekat ke kunci dengan mengubah MaxActivationDistance menjadi 4.

Durasi tahan

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

Implementasikan tindakan

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

Kerangka dasar adalah sebagai berikut:

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

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

Di dalam skrip, peristiwa 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 ketika prompt dipicu
local function onPromptTriggered(promptObject, player)
ObjectActions.promptTriggeredActions(promptObject, player)
end
-- Deteksi ketika tahan prompt dimulai
local function onPromptHoldBegan(promptObject, player)
ObjectActions.promptHoldBeganActions(promptObject, player)
end
-- Deteksi ketika tahan prompt berakhir
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 proksimitas adalah solusi yang nyaman dan dapat disesuaikan untuk interaksi objek dalam permainan. Lihat halaman referensi ProximityPrompt dan ProximityPromptService untuk lebih banyak cara mengontrol perilaku prompt, dan jelajahi objek interaktif lainnya di 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.