Entrada móvel

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.

A maioria das sessões da Roblox é jogada em dispositivos móveis, então é importante considerar a orientação do dispositivo e outros fatores multiplataforma ao projetar um jogo para um público amplo.

Para simplificar as entradas multiplataforma, incluindo a interação do jogador com botões virtuais, a Roblox fornece o Sistema de Ação de Entrada para definir ações como "pular", "correr" ou "disparar" e configurar vinculações para múltiplas entradas de hardware que acionam essas ações.

A Roblox também suporta recursos nativos de dispositivos móveis, como feedback háptico, gestos de toque como TouchSwipe e TouchPinch, ou funcionalidade de acelerômetro e giroscópio em dispositivos AccelerometerEnabled e GyroscopeEnabled.

Detecção do tipo de entrada

No desenvolvimento multiplataforma, é importante que você determine e responda ao tipo PreferredInput que um jogador está usando, normalmente para garantir que os elementos da interface do usuário como botões e menus na tela funcionem elegantemente e suportem a interação entre dispositivos.

Por exemplo, um dispositivo habilitado para toque assume que o toque é a entrada padrão e que botões de toque podem aparecer para ações, mas um jogador pode optar por conectar um controle bluetooth. Nesse caso, o toque permanece uma entrada válida, mas você pode supor que o jogador quer mudar para o controle conectado como o tipo de entrada primário e possivelmente usar o toque como uma entrada de backup para a interface do usuário na tela.

Veja detecção do tipo de entrada para mais informações.

Orientação do dispositivo

Por padrão, os jogos da Roblox são executados em modo paisagem, permitindo que o jogo mude entre a orientação "esquerda" e "direita" ao girar o dispositivo do jogador. No entanto, os jogos podem ser bloqueados em uma orientação específica, se desejado.

Existem cinco modos de orientação diferentes, incluindo dois modos baseados em sensor e três modos bloqueados.¹ Cada um deles pode ser definido como a orientação padrão através de StarterGui.ScreenOrientation, acessível através da janela de Propriedades do Studio.

Modos de Sensor
LandscapeSensorA configuração padrão da Roblox na qual o jogo sempre aparece em modo paisagem (sem modo retrato) e o dispositivo detecta sua orientação física para garantir que a visão do jogo esteja sempre orientada para cima.
SensorO dispositivo detecta sua orientação física para garantir que a visão do jogo esteja sempre orientada para cima, mudando entre os modos paisagem e retrato conforme necessário.
Modos Bloqueados
LandscapeLeftEm dispositivos com uma barra de navegação/home virtual, sua região de toque está na parte inferior da tela. Em dispositivos com um botão home físico, o botão home está à esquerda da tela.
LandscapeRightEm dispositivos com uma barra de navegação/home virtual, sua região de toque está na parte inferior da tela. Em dispositivos com um botão home físico, o botão home está à direita da tela.
PortraitEm dispositivos com uma barra de navegação/home virtual, sua região de toque está na parte inferior da tela. Em dispositivos com um botão home físico, o botão home está abaixo da tela.
¹ A Roblox não inclui um modo "retrato de cabeça para baixo" uma vez que muitos dispositivos não suportam nativamente essa orientação


Além da propriedade padrão StarterGui.ScreenOrientation, você pode mudar a orientação durante o gameplay através de PlayerGui.ScreenOrientation. Isso pode ser útil quando um jogo precisa impor uma orientação, como bloquear a visão em Portrait para um minijogo.

O seguinte código em um LocalScript define a orientação da tela para retrato após um pequeno atraso:

LocalScript - Mudar Orientação da Tela para Retrato

local Players = game:GetService("Players")
local player = Players.LocalPlayer
local playerGui = player.PlayerGui
task.wait(5)
playerGui.ScreenOrientation = Enum.ScreenOrientation.Portrait

Finalmente, você pode detectar mudanças na orientação da tela durante o gameplay ao ouvir as mudanças de valor na propriedade PlayerGui.CurrentScreenOrientation.

LocalScript - Detectar Mudanças na Orientação da Tela

local Players = game:GetService("Players")
local player = Players.LocalPlayer
local playerGui = player.PlayerGui
local function onOrientationChange()
print("Orientação mudada para", playerGui.ScreenOrientation)
end
playerGui:GetPropertyChangedSignal("ScreenOrientation"):Connect(onOrientationChange)

Feedback háptico

A maioria dos dispositivos móveis possui motores embutidos para fornecer feedback háptico. Adicionar vibrações e tremores pode melhorar muito a experiência do jogador e fornecer um feedback sutil além de visuais ou áudio.

A Roblox suporta háptica para dispositivos com capacidade háptica, incluindo a maioria dos dispositivos iPhone, Pixel e Samsung Galaxy. 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 funcionamento, 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()
©2026 Roblox Corporation, Roblox, o logotipo Roblox e Powering Imagination estão entre nossas marcas registradas e não registradas nos EUA e em outros países.