Roblox acepta la entrada de gamepads como los controladores de Xbox y PlayStation. Para simplificar las entradas multiplataforma, incluidos los gamepads, Roblox proporciona el Sistema de Acción de Entrada para definir acciones como "saltar", "correr" o "disparar" y configurar vinculaciones para múltiples entradas de hardware que impulsen esas acciones.
Al vincular entradas de gamepad, consulta los esquemas de control comunes para crear una experiencia de gamepad consistente para los jugadores. Una vez que las entradas están configuradas, puedes mejorar la experiencia del jugador incluyendo retroalimentación háptica en los controladores compatibles.
A medida que desarrollas el soporte para gamepads, recuerda probar con frecuencia utilizando un gamepad conectado o el Emulador de Controlador en Studio.
Detección del tipo de entrada
En el desarrollo multiplataforma, es importante que determines y respondas al tipo de entrada PreferredInput que está utilizando un jugador, normalmente para asegurar que los elementos de UI como botones y menús en pantalla funcionen de manera elegante y soporten la interacción a través de dispositivos.
Por ejemplo, una consola asume que los gamepads son la entrada predeterminada, pero un jugador en PC o laptop también puede optar por conectar un gamepad bluetooth. En este caso, el mouse/teclado sigue siendo una entrada válida para ese jugador, pero puedes asumir que quieren cambiar al gamepad conectado como el tipo de entrada principal.
Consulta la detección del tipo de entrada para más información.
Esquemas de control comunes
Al considerar vinculaciones de control específicas para el Sistema de Acción de Entrada, es mejor establecer consistencia a través de diferentes juegos. Las siguientes vinculaciones de entrada ayudarán a que los jugadores se sientan inmediatamente familiares y cómodos con los controles del gamepad.
| Entrada | Casos de uso comunes |
|---|---|
| ButtonA | Acepta los mensajes o selecciones de la GUI del jugador. Alternativamente se utiliza para acciones primarias como saltar. |
| ButtonB | Cancela los mensajes o selecciones de la GUI del jugador. Alternativamente se utiliza para acciones secundarias como esquivar, rodar o correr. |
| Thumbstick1 | Generalmente asociado con el movimiento del personaje. |
| Thumbstick2 | Generalmente asociado con el movimiento de la cámara. |
| ButtonL2, ButtonR2 | Generalmente utilizado para acciones primarias, como disparar. |
| ButtonL1, ButtonR1, ButtonX, ButtonY | Acciones secundarias como recargar, apuntar o acceder a un inventario o minimapa. |

Retroalimentación háptica
Muchos controladores de gamepad tienen motores incorporados para proporcionar retroalimentación háptica. Agregar vibraciones y temblores puede mejorar enormemente la experiencia del jugador y proporcionar retroalimentación sutil más allá de lo visual o auditivo.
Roblox soporta hápticas para gamepads de PlayStation, gamepads de Xbox y el controlador Quest Touch. La retroalimentación háptica se gestiona a través de instancias de HapticEffect que se pueden establecer en un Type específico como GameplayCollision o UIClick.
Una vez que se establece un HapticEffect, puedes iniciarlo a través del método Play(), por ejemplo:
local Workspace = game:GetService("Workspace")
local effect = Instance.new("HapticEffect")
effect.Type = Enum.HapticEffectType.GameplayExplosion
effect.Parent = Workspace
-- Reproducir el efecto háptico
effect:Play()Emulación de controlador
Utiliza el Emulador de Controlador para probar la entrada del gamepad directamente en Studio sin un controlador físico conectado. Muestra una imagen del dispositivo emulado y enciende sus controles a medida que llega la entrada, lo que ayuda a confirmar que tus manejadores de UserInputService y las vinculaciones del Sistema de Acción de Entrada reaccionan como esperas.