Sebagian besar sesi Roblox dimainkan di perangkat dengan mouse dan keyboard, jadi penting untuk mendukung input ini dengan benar saat mendesain pengalaman untuk penonton yang lebar. Setelah Anda nyaman dengan mouse dan keyboard, buat pengalaman kompatibel di beberapa platform dengan menetapkan ponsel dan gamepad input.
Untuk kenyamanan, Roblox menetapkan input mouse dan keyboard paling umum sebagai default binding yang, kecuali untuk binding yang disimpan, dapat Anda overwrite.
Masukan Tikus Umum
Seperti semua masukan perangkat, Anda dapat menangkap masukan mouse menggunakan UserInputService . Layanan ini menyediakan cara skalable untuk menangkap perubahan masukan dan perangkat masukan untuk banyak perangkat sekaligus. Roblox juga mendukung deteksi mouse legendaris dengan PlayerMouse dan Class.ClickDetector|ClickDetectors</
Selain itu, Anda dapat menggunakan ContextActionService untuk menangani beberapa tindakan pada satu input tergantung pada konteks, seperti menggunakan alat saat dekat dengan sebuah batu, atau membuka pintu saat berada di dalam membangun kota. Lihat Masukkan Tergantung Konteks untuk informasi tentang menetapkan tindakan masukan spesifik.
Class.LocalScript, saat ditempatkan di StarterPlayerScripts, menangkap klik mouse dan mencetak posisi mouse ke jendela Output:
Script Lokal -Output Klik Tikus dan Posisi
local UserInputService = game:GetService("UserInputService")
local function onInputEnded(inputObject, processedEvent)
-- Pertama periksa jika "prosesEvent" benar
-- Ini menunjukkan bahwa script lain telah memproses input, jadi yang ini diabaikan
if processedEvent then return end
-- Selanjutnya, periksa bahwa masukan adalah acara mouse
if inputObject.UserInputType == Enum.UserInputType.MouseButton1 then
print("Left Mouse button was pressed:", inputObject.Position)
elseif inputObject.UserInputType == Enum.UserInputType.MouseButton2 then
print("Right Mouse button was pressed:", inputObject.Position)
end
end
UserInputService.InputEnded:Connect(onInputEnded)
Masukan Klasik Keyboard
Untuk mengakses acara keyboard, gunakan acara UserInputService.InputEnded untuk melacak kapan pun keystroke atau input lainnya berakhir. Mirip dengan acara mouse , acara ini hanya berfungsi di dalam LocalScript .
Berikut LocalScript, ketika ditempatkan di StarterPlayerScripts, mengeprint Enum.KeyCode dari tombol yang ditekan ke jendela 1>Output1>:
local UserInputService = game:GetService("UserInputService")
local function onInputEnded(inputObject, processedEvent)
-- Pertama periksa jika "prosesEvent" benar
-- Ini menunjukkan bahwa script lain telah memproses input, jadi yang ini diabaikan.
if processedEvent then return end
-- Selanjutnya, periksa bahwa masukan adalah acara keyboard
if inputObject.UserInputType == Enum.UserInputType.Keyboard then
print("A key was released: " .. inputObject.KeyCode.Name)
end
end
UserInputService.InputEnded:Connect(onInputEnded)
Masukan UI
Masukan mouse dan keyboard secara otomatis bekerja dengan elemen UI interaktif seperti TextButtons dan ImageButtons , serta TextBoxes yang menangkap masukan teks seperti bidang dalam bentuk.
Untuk lebih banyak informasi tentang membuat tombol dan objek masukan teks, lihat Tombol dan Masukkan Teks .
Mode Gerakan Karakter
Anda dapat menetapkan skema kontrol gerakan mouse dan keyboard untuk pengalaman Roblox dengan mengubah nilai StarterPlayer.DevComputerMovementMode ke salah satu dari mengikuti:
Opsi | Deskripsi |
---|---|
Pilihan Pengguna | Memungkinkan pengguna untuk memilih skema kontrol yang mereka inginkan dari menu dalam pengalaman. Opsi ini diaktifkan secara default. |
KeyboardMouse | Pengguna dapat menekan WASD untuk bergerak dan 1> Ruang Kosong1> untuk loncat. Ini adalah pengaturan default untuk pengguna keyboard dan mouse untuk pengaturan 4> Pilihan Pengguna 4>. |
KlikUntukBergerakkan | Pengguna hanya dapat bergerak melalui pengalaman dengan menekan tombol kanan tujuan. |
DapatDitulis | Nonaktifkan semua kontrol default dan izinkan Anda untuk menyetel kontrol Anda sendiri. |
Ikon Mouse
Anda dapat menyesuaikan tampilan dan perilaku mouse pengguna di dalam pengalaman Anda untuk menciptakan gaya bertumpuhan yang konsisten di semua elemen UI Anda. Ini termasuk mengubah mouse pengguna sementara dalam kondisi tertentu, seperti menyorot tombol.
Mengubah Ikon
Anda dapat mengubah ikon mouse pengguna di LocalScript dengan menetapkan propperti MouseIcon di UserInputService ke ID Roblox aset khusus. Misalnya, berikut adalah perubahan 1> Class.LocalScript1> pengguna
local UserInputService = game:GetService("UserInputService")UserInputService.MouseIcon = "rbxassetid://3400146391"
Sembunyikan Ikon
Anda dapat menyembunyikan ikon mouse pengguna dengan menetapkan UserInputService.MouseIconEnabled ke false di LocalScript . Misalnya, kode berikut mengubah ikon mouse dari terlihat ke tidak terlihat dan kembali setiap dua detik:
local UserInputService = game:GetService("UserInputService")while true dotask.wait(2)UserInputService.MouseIconEnabled = falsetask.wait(2)UserInputService.MouseIconEnabled = trueend
Mengunci Icon
Anda dapat menyetel posisi ikon mouse ke layar menggunakan UserInputService.MouseBehavior dengan nilai Enum.MouseBehavior atau LockCurrentPosition , lalu buka kunci lagi dengan nilai 1> Class.MouseBehavior|Default1> .
Jika ikon mouse pengguna terkunci dalam posisi, UserInputService.InputChanged masih berfungsi saat pengguna menggerakkan mouse, menembus jarak mouse yang telah dipercepat. Misalnya, contoh kode berikut menyebutkan ikon mouse pengguna setelah satu detik, lalu Studio mengeprint ujung mouse saat pengguna menggerakkan mouse mereka:
local UserInputService = game:GetService("UserInputService")
task.wait(5)
UserInputService.MouseBehavior = Enum.MouseBehavior.LockCurrentPosition
UserInputService.InputChanged:Connect(function(inputObject)
if inputObject.UserInputType == Enum.UserInputType.MouseMovement then
print("Mouse delta is (" .. tostring(inputObject.Delta.X) .. ", " .. tostring(inputObject.Delta.Y) .. ")")
end
end)
Pengikat Standar Roblox
Roblox menyediakan pengikat kunci default untuk semua pengalaman. Ini adalah input paling umum yang digunakan untuk gerakan, kontrol kamera, dan interaksi lingkungan dasar. Meskipun pengikat kunci yang disediakan, Anda dapat menggunakan ContextActionService untuk menciptakan pengikat kunci yang meng prioritaskan beberapa pengikat ke actiontunggal,
Enum.CoreGuiType fitur, seperti Ransel atau Obrolan , memiliki daftar input default tambahan. Anda tidak dapat mengeksploitasi input cadangan seperti 0>Esc0> (Roblox menu) atau Enum.CoreGuiType3> (Developer Console).
Pasukan ini adalah default Roblox, tetapi Anda dapat mengalahkannya dengan skrip khusus. Kebanyakan pengguna Roblox akrab dengan kendaliini, jadi Anda hanya harus mengalahkannya dalam kasus tertentu.
Masukan | Tindakan |
---|---|
W↑ | Pindah ke depan |
S↓ | Pindah kembali |
A) | Pindah kiri |
D | Pindahkan kanan |
Ruang pembaruang | Lompat |
←→ | Putar kamera ke kiri atau kanan |
Tombol Kanan Tikus | Ketika ditekan, menyeret mouse menyebarkan pandangan kamera |
Roda Mousel Scroll AkuO | Perbesar atau kurangi kamera |
Bergeser ke atas | Batalkan kunci mouse jika EnableMouseLockOption diaktifkan |