Como faço para os Joysticks aparecerem apenas no mobile?

Olá, pessoal. Estou desenvolvendo um jogo para PC e celular mas ao fazer os joysticks e o HUD do personagem me deparei com um problema, como faço para eles sumirem quando o jogo estiver no PC e como ativo os controladores e botões para aparecerem quando estiverem no mobile(Android e iOS)?

Você pode detectar a plataforma e controlar a exibição dos botões usando SystemInfo.deviceType. Esse método identifica o tipo de dispositivo em que o jogo está rodand. Ele classifica os dispositivos em três categorias:

  • DeviceType.Desktop → Computadores (Windows, macOS, Linux)
  • DeviceType.Handheld → Dispositivos móveis (Android, iOS)
  • DeviceType.Console → Consoles (PlayStation, Xbox, etc.)

Aqui está um exemplo prático:

void Start() {
    bool isMobile = SystemInfo.deviceType == DeviceType.Handheld;
    
    // Ativa os controles mobile apenas se estiver rodando em um dispositivo móvel
    mobileHUD.SetActive(isMobile);
}

Outra opção é desativar os controles manualmente antes de compilar para PC e ativá-los ao compilar para mobile.

Um script com este método “SystemInfo.deviceType” não precisa estar vinculado(adicionado como componente) a nenhum GameObject? Só dele estar criado já vai funcionar?

Você tem que adicionar esse script em algum objeto para funcionar. Pode ser um objeto vazio na sua cena.

1 curtida