Roblox aceita entrada de gamepads, como controladores Xbox e PlayStation. Para simplificar entradas multiplataforma, incluindo gamepads, Roblox fornece o Sistema de Ação de Entrada para definir ações como "pular", "correr" ou "atirar" e configurar vínculos para múltiplas entradas de hardware que acionam essas ações.
Ao vincular entradas de gamepad, consulte esquemas de controle comuns para criar uma experiência de gamepad consistente para os jogadores. Depois que as entradas estiverem configuradas, você pode aprimorar a experiência do jogador incluindo feedback háptico em controladores suportados.
À medida que você desenvolve suporte para gamepads, lembre-se de testar frequentemente usando um gamepad conectado ou o Emulador de Controlador no Studio.
Detecção do tipo de entrada
No desenvolvimento multiplataforma, é importante que você determine e responda ao tipo de entrada PreferredInput que um jogador está usando, normalmente para garantir que os elementos de UI como botões e menus na tela funcionem de forma elegante e suportem interação entre dispositivos.
Por exemplo, um console assume que gamepads são a entrada padrão, mas um jogador em PC ou laptop também pode optar por conectar um gamepad bluetooth. Nesse caso, mouse/teclado continua sendo uma entrada válida para esse jogador, mas você pode assumir que eles querem mudar para o gamepad conectado como o tipo de entrada primário.
Consulte detecção do tipo de entrada para mais informações.
Esquemas de controle comuns
Ao considerar vínculos de controle específicos para o Sistema de Ação de Entrada, é melhor estabelecer consistência entre diferentes jogos. Os seguintes vínculos de entrada ajudarão os jogadores a se sentirem imediatamente familiares e confortáveis com os controles do gamepad.
| Entrada | Casos de uso comuns |
|---|---|
| ButtonA | Aceita prompts do jogador ou seleções de GUI. Alternativamente usado para ações primárias, como pular. |
| ButtonB | Cancela prompts do jogador ou seleções de GUI. Alternativamente usado para ações secundárias, como desviar, rolar ou correr. |
| Thumbstick1 | Geralmente associado ao movimento do personagem. |
| Thumbstick2 | Geralmente associado ao movimento da câmera. |
| ButtonL2, ButtonR2 | Geralmente usado para ações primárias, como atirar. |
| ButtonL1, ButtonR1, ButtonX, ButtonY | Ações secundárias, como recarregar, mirar ou acessar um inventário ou minimapa. |

Feedback háptico
Muitos controladores de gamepad têm motores embutidos para fornecer feedback háptico. Adicionar tremores e vibrações pode melhorar muito a experiência do jogador e fornecer feedback sutil além de visuais ou áudio.
Roblox suporta hápticas para gamepads PlayStation, gamepads Xbox e o controlador Quest Touch. O feedback háptico é gerenciado através de instâncias de HapticEffect, que podem ser definidas para um tipo específico Type, como GameplayCollision ou UIClick.
Uma vez que um HapticEffect esteja em vigor, você pode iniciá-lo através do método Play(), por exemplo:
local Workspace = game:GetService("Workspace")
local effect = Instance.new("HapticEffect")
effect.Type = Enum.HapticEffectType.GameplayExplosion
effect.Parent = Workspace
-- Reproduzir o efeito háptico
effect:Play()Emulação de controlador
Use o Emulador de Controlador para testar a entrada do gamepad diretamente no Studio sem um controlador físico conectado. Ele mostra uma imagem do dispositivo emulado e ilumina seus controles à medida que a entrada chega, o que ajuda a confirmar que seus manipuladores UserInputService e os vínculos do Sistema de Ação de Entrada reagem da maneira que você espera.