Masukan Mouse dan Keyboard

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

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:

OpsiDeskripsi
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 do
task.wait(2)
UserInputService.MouseIconEnabled = false
task.wait(2)
UserInputService.MouseIconEnabled = true
end

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.

MasukanTindakan
WPindah ke depan
SPindah kembali
A)Pindah kiri
DPindahkan kanan
Ruang pembaruangLompat
Putar kamera ke kiri atau kanan
Tombol Kanan Tikus Ketika ditekan, menyeret mouse menyebarkan pandangan kamera
Roda Mousel Scroll AkuOPerbesar atau kurangi kamera
Bergeser ke atasBatalkan kunci mouse jika EnableMouseLockOption diaktifkan