ProximityPrompt objek mendorong interaksi pengguna untuk menyebabkan tindakan saat mereka mendekati objek-objek dalam pengalaman seperti pintu, lampu, dan tombol. Menggunakan objek ini, Anda dapat:
- Tunjukkan objek apa yang dapat diinteraksi pengguna dalam pengalaman.
- Tampilkan tindakan yang dapat dilakukan pengguna pada objek, lalu mengaktifkan tindakan melalui masukan pengguna seperti menekan atau menahan unit.
- Tampilkan masukan yang benar untuk semua jenis masukan, seperti keyboard, gamepad, dan tombol touch.
Membuat Prompt Kedekatan
Anda harus menyertakan persyaratan kedekatan ke bagian, model, atau lampiran yang ingin Anda gunakan pengguna untuk berinteraksi dengan. Untuk menambahkan persyaratan kedekatan ke objek BasePart, Model, atau Attachment :
Dari menu, sisipkan ProximityPrompt .
Mengubah Prompt Kedekatan
Anda dapat menyesuaikan prompt lokasi berdasarkan cara Anda ingin agar tampil, ketika Anda ingin agar itu terlihat, dan apa yang ingin Anda lakukan pada 触发动作.
Tampilan
Proximity prompt harus berkomunikasi tiga hal:
- objek yang dapat diinteraksi pengguna.
- Tindakan yang terjadi ketika mereka berinteraksi dengan prompt proximity.
- Kunci yang harus ditekan atau dipegang pengguna.
Anda dapat meng指定 ini melalui property berikut:
ObjectText Nama objek yangopsional untuk objek yang dapat diinteraksi pengguna.
ActionText Nama opsi untuk tindakan yang akan diaktifkan pengguna.
KeyboardKeyCode Tombol keyboard yang harus ditekan atau dipegang pengguna untuk memicu action.
GamepadKeyCode Kode konsol game yang harus ditekan atau dipegang pengguna untuk memicu action.
Keselamatan
Anda dapat mengontrol ketika prompt kedekatan muncul melalui MaxActivationDistance , RequiresLineOfSight , dan Exclusivity属性.
Jarak Aktivasi Maks
Properti MaxActivationDistance ini mengizinkan Anda untuk mendefinisikan jangkauan dari sekitar objek ProximityPrompt yang mengaktifkan visibilitas prompt kedekatan. Setelah karakter pengguna memasuki jangkauan itu, prompt kedekatan menjadi terlihat.
MemerlukanLineOfSight
Propiedad RequiresLineOfSight menetapkan visibilitas prompt kedekatan saat ada jalan yang jelas dari kamera ke objek Class.ProximityPrompt . Secara default, propiedad ini di set ke true.
Eksklusivitas
Jika karakter pengguna berada dalam rentang beberapa prompt kedekatan, kesadaran setiap prompt kedekatan didasarkan pada prom示 yang dekat mana kamera menunjuk, serta nilai Exclusivity setiap prompt kedekatan.
Interaktivitas
Anda dapat menyesuaikan cara seorang pengguna berinteraksi dengan prompt lokasi melalui HoldDuration dan ClickablePrompt property.
Jadwal
Properti HoldDuration menentukan berapa banyak detik yang harus ditekan pengguna sebelum tindakan tombol kedekatan mengaktifkan. Jika propperti ini memiliki nilai 0, tombol kedekatan segera diaktifkan.
Klik Mengingat
Properti ClickablePrompt meng指定 jika seorang pengguna dapat mengklik pengingatirahat ketika mengklik pengingatirahat ketika mengklik pengingatirahat ketika mengklik pengingatirahat ketika mengklik pengingatirah
Mengaktifkan Prompt Kedekatan Skrip
Anda dapat terhubung ke acara pengingat kedekatan apakah di objek ProximityPrompt sendiri atau secara global melalui ProximityPromptService . The ProximityPromptService memungkinkan Anda untuk mengelola semua perilaku pengingat kedekatan dari satu lokasi, menghindari perlu kode duplikasi dalam pengalaman Anda.
Acara | Deskripsi |
---|---|
PromptTriggered | Dibakar saat seorang pemain berinteraksi dengan prompt kedekatan (setelah durasi untuk prompt dengan non-零 HoldDuration). |
PromptTriggerEnded | Memicu ketika pemain berhenti berinteraksi dengan prompt lokasi. |
PromptButtonHoldBegan | Mengaktifkan ketika seorang pemain mulai berinteraksi dengan prompt lokasi dengan nilai HoldDuration yang tidak nol. |
PromptButtonHoldEnded | Mengaktifkan ketika seorang pemain berhenti berinteraksi dengan prompt lokasi dengan nilai HoldDuration yang tidak nol. |
PromptShown | Memicu dalam LocalScripts ketika prompt kedekatan dibuat terlihat. |
PromptHidden | Memicu dalam LocalScripts ketika prompt tersembunyi. |
Berikut adalah contoh kode dasar untuk menggunakan ProximityPromptService :
local ProximityPromptService = game:GetService("ProximityPromptService")
-- Deteksi saat prompt diaktifkan
local function onPromptTriggered(promptObject, player)
end
-- Deteksi saat prompt hold dimulai
local function onPromptHoldBegan(promptObject, player)
end
-- Deteksi saat prompt hold berakhir
local function onPromptHoldEnded(promptObject, player)
end
-- Koneksi acara prompt ke fungsi penanganan
ProximityPromptService.PromptTriggered:Connect(onPromptTriggered)
ProximityPromptService.PromptButtonHoldBegan:Connect(onPromptHoldBegan)
ProximityPromptService.PromptButtonHoldEnded:Connect(onPromptHoldEnded)