Mỗi trò chơi cần nhận đầu vào từ người dùng để người chơi tương tác và xem môi trường của họ. Roblox hỗ trợ hầu hết tất cả các hình thức nhập liệu, bao gồm chuột/bàn phím, cảm ứng, bảng điều khiển, và VR.
Nhập liệu đa nền tảng
Roblox về cơ bản là đa nền tảng, khi người chơi có thể khám phá và tham gia trò chơi trên điện thoại hoặc máy tính bảng, sau đó tiếp tục nơi họ đã dừng lại trên PC hoặc console. Nhập liệu đặc biệt quan trọng như một phần của kế hoạch phát triển đa nền tảng của bạn.
Để đơn giản hóa quy trình này, Roblox cung cấp Hệ thống Hành động Nhập liệu để định nghĩa hành động như "nhảy," "chạy," hoặc "bắn" và thiết lập ràng buộc cho nhiều thiết bị phần cứng khác nhau để thực hiện những hành động đó. Điều này giúp bạn không phải suy nghĩ về tất cả các khía cạnh kỹ thuật của nhập liệu phần cứng và cho phép bạn chỉ định rõ ràng những đầu vào nào thực hiện hành động nào.

Phát hiện loại nhập liệu
Trong phát triển đa nền tảng, điều quan trọng là bạn xác định và phản hồi loại nhập liệu chính mà người chơi đang sử dụng, thường để đảm bảo rằng các yếu tố UI như nút và menu trên màn hình hoạt động một cách mượt mà trên nhiều thiết bị.
Ví dụ, một thiết bị hỗ trợ cảm ứng giả định cảm ứng là đầu vào mặc định và rằng các nút cảm ứng có thể xuất hiện cho các hành động, nhưng nếu người chơi kết nối thêm bàn phím/một con chuột hoặc bảng điều khiển bluetooth, bạn có thể giả định rằng họ muốn chuyển sang loại nhập liệu chính đó và có thể sử dụng cảm ứng như một đầu vào dự phòng cho UI trên màn hình. Thuộc tính chỉ đọc UserInputService.PreferredInput là một cách thuận tiện để kiểm tra và thích ứng với nhiều loại nhập liệu qua nhiều loại thiết bị, dựa trên hành vi dự đoán của người chơi.
Giá trị của PreferredInput thay đổi dựa trên các đầu vào thiết bị tích hợp và tương tác gần đây nhất của người chơi với một bảng điều khiển hoặc bàn phím/một con chuột đã kết nối. Một số ví dụ bao gồm:
| Tình huống Thực tế | PreferredInput |
|---|---|
| Người chơi đang sử dụng một chiếc điện thoại mà không có thiết bị đầu vào khác được kết nối; không có khả năng thay đổi loại nhập liệu. | Touch |
| Người chơi đang sử dụng một thiết bị di động với bàn phím & chuột bluetooth được kết nối, nhưng không có bảng điều khiển nào được kết nối. | KeyboardAndMouse |
| Người chơi đang sử dụng một tablet với bảng điều khiển bluetooth được kết nối, nhưng không có bàn phím hoặc chuột nào được kết nối. | Gamepad |
| Người chơi đang sử dụng Xbox hoặc PlayStation với bàn phím & chuột bluetooth được kết nối và đã tương tác gần đây nhất với bàn phím hoặc chuột. | KeyboardAndMouse |
| Người chơi đang ở trên PC Windows hoặc Mac với bảng điều khiển được kết nối và đã tương tác gần đây nhất với bảng điều khiển. | Gamepad |
Đoạn mã LocalScript sau đây là một mẫu để phát hiện ban đầu đầu vào ưa thích và phản hồi khi có sự thay đổi trong khi chơi.
Phát hiện PreferredInput
local UserInputService = game:GetService("UserInputService")
local function preferredInputChanged()
local preferredInput = UserInputService.PreferredInput
if preferredInput == Enum.PreferredInput.Touch then
-- Người chơi đang trên thiết bị hỗ trợ cảm ứng mà không có loại đầu vào nào khác khả dụng/được kết nối
print("Cảm ứng")
elseif preferredInput == Enum.PreferredInput.Gamepad then
-- Người chơi đã kết nối hoặc tương tác gần đây nhất với một bảng điều khiển
print("Bảng điều khiển")
elseif preferredInput == Enum.PreferredInput.KeyboardAndMouse then
-- Người chơi đã kết nối hoặc tương tác gần đây nhất với bàn phím hoặc chuột
print("Bàn phím và chuột")
end
end
preferredInputChanged()
UserInputService:GetPropertyChangedSignal("PreferredInput"):Connect(function()
preferredInputChanged()
end)
Ràng buộc mặc định
Roblox cung cấp các liên kết đầu vào mặc định cho chuyển động, điều khiển camera và tương tác cơ bản với môi trường — người chơi Roblox đã quen thuộc với những điều khiển này, vì vậy bạn chỉ nên ghi đè chúng trong những trường hợp cụ thể. Cũng lưu ý rằng các đầu vào đã được dự trữ không thể bị ghi đè và sẽ luôn hoạt động với mục đích của chúng.
| Hành động | Chuột/Bàn phím | Gamepad | Cảm ứng |
|---|---|---|---|
| Mở menu Roblox | Esc | Start button (ButtonStart) | Không có |
| Developer Console | F9 | Không có | Không có |
| Chế độ toàn màn hình (Windows) Hiển thị màn hình chính (Mac) | F11 | Không có | Không có |
| Ghi video (Windows) | F12 | Không có | Không có |
| Chụp màn hình | PrintScreen | Không có | Không có |