Setiap game perlu menerima input dari pengguna agar pemain dapat berinteraksi dan melihat lingkungan mereka. Roblox mendukung hampir semua bentuk input, termasuk mouse/keyboard, sentuh, gamepad, dan VR.
Input lintas platform
Roblox pada dasarnya adalah lintas platform, karena pemain dapat menemukan dan bergabung dalam game di ponsel atau tablet mereka, kemudian melanjutkan dari tempat mereka berhenti di PC atau konsol. Input sangat penting sebagai bagian dari rencana pengembangan lintas platform Anda.
Untuk menyederhanakan proses ini, Roblox menyediakan Sistem Aksi Input untuk mendefinisikan aksi seperti "melompat," "berlari," atau "menembak" dan mengatur ikatan untuk beberapa input perangkat keras agar dapat menjalankan aksi tersebut. Ini membebaskan Anda dari memikirkan semua aspek teknis dari input perangkat keras dan memungkinkan Anda untuk hanya mendefinisikan input mana yang melakukan aksi mana.

Deteksi jenis input
Dalam pengembangan lintas platform, penting untuk menentukan dan merespons tipe input utama yang digunakan pemain, biasanya untuk memastikan bahwa elemen UI seperti tombol dan menu di layar bekerja dengan baik di berbagai perangkat.
Sebagai contoh, perangkat yang mendukung sentuh menganggap sentuh sebagai input default dan tombol sentuh dapat muncul untuk aksi, tetapi jika seorang pemain menghubungkan keyboard/mouse atau gamepad bluetooth tambahan, Anda dapat menganggap mereka ingin beralih ke itu sebagai tipe input utama dan mungkin menggunakan sentuh sebagai input cadangan untuk UI di layar. Properti read-only UserInputService.PreferredInput adalah cara yang nyaman untuk menguji dan beradaptasi dengan beberapa jenis input di berbagai jenis perangkat, berdasarkan perilaku pemain yang diantisipasi.
Nilai dari PreferredInput berubah berdasarkan input perangkat yang ada dan interaksi terbaru pemain dengan gamepad atau keyboard/mouse yang terhubung. Contoh termasuk:
| Skema Dunia Nyata | PreferredInput |
|---|---|
| Pemain menggunakan ponsel tanpa perangkat input lain yang terhubung; tidak ada kemungkinan perubahan tipe input. | Touch |
| Pemain menggunakan perangkat mobile dengan keyboard & mouse bluetooth terhubung, tetapi tidak ada gamepad yang terhubung. | KeyboardAndMouse |
| Pemain menggunakan tablet dengan gamepad bluetooth terhubung, tetapi tidak ada keyboard atau mouse yang terhubung. | Gamepad |
| Pemain menggunakan Xbox atau PlayStation dengan keyboard & mouse bluetooth terhubung dan baru-baru ini berinteraksi dengan keyboard atau mouse. | KeyboardAndMouse |
| Pemain berada di PC Windows atau Mac dengan gamepad terhubung dan baru-baru ini berinteraksi dengan gamepad. | Gamepad |
LocalScript berikut adalah template untuk mendeteksi input preferensi awal dan merespons perubahan selama gameplay.
Deteksi PreferredInput
local UserInputService = game:GetService("UserInputService")
local function preferredInputChanged()
local preferredInput = UserInputService.PreferredInput
if preferredInput == Enum.PreferredInput.Touch then
-- Pemain berada di perangkat yang mendukung sentuh tanpa jenis input lain yang tersedia/terhubung
print("Sentuh")
elseif preferredInput == Enum.PreferredInput.Gamepad then
-- Pemain telah terhubung atau baru-baru ini berinteraksi dengan gamepad
print("Gamepad")
elseif preferredInput == Enum.PreferredInput.KeyboardAndMouse then
-- Pemain telah terhubung atau baru-baru ini berinteraksi dengan keyboard atau mouse
print("KeyboardAndMouse")
end
end
preferredInputChanged()
UserInputService:GetPropertyChangedSignal("PreferredInput"):Connect(function()
preferredInputChanged()
end)
Ikatan default
Roblox menyediakan pengikatan input default untuk gerakan, kontrol kamera, dan interaksi dasar dengan lingkungan — pemain Roblox sudah akrab dengan kontrol ini, jadi Anda hanya boleh mengubahnya dalam kasus tertentu. Juga perlu dicatat bahwa input terkendali tidak dapat diubah dan akan selalu beroperasi sesuai tujuan yang dimaksud.
| Tindakan | Mouse/Kunci | Gamepad | Sentuh |
|---|---|---|---|
| Buka menu Roblox | Esc | Start tombol (ButtonStart) | N/A |
| Konsol Pengembang | F9 | N/A | N/A |
| Mode layar penuh (Windows) Tampilkan desktop (Mac) | F11 | N/A | N/A |
| Rekam video (Windows) | F12 | N/A | N/A |
| Ambil screenshot | PrintScreen | N/A | N/A |