← Voltar ao blog

Hierarquia de Informações do HUD Mobile: O Que Mostrar em Combate, Lobby e Modais

Visibilidade e prioridade do HUD por estado de jogo; relação com Safe Area, camadas de texto flutuante e empilhamento de modais — tabelas de especificação e etapas de aceitação em Play e dispositivo.

Publicado
  • game-ui-design
  • game-dev-ai
  • ui-to-engine
  • hud
  • mobile
  • unity
  • godot
  • cocos
  • vberai
  • 2026
Hierarquia de Informações do HUD Mobile: O Que Mostrar em Combate, Lobby e Modais

Falhas de HUD raramente são “esquecemos a barra de vida” — elas são elementos demais com a mesma prioridade em uma única tela: abas de lobby durante o combate, uma loja tocável sobre uma cinemática, ou HUD subjacente ainda consumindo toques quando um modal está aberto. Mocks de design costumam ser de quadro único e nunca marcam “ocultar moeda em combate” — você precisa de uma especificação de estado × camada para que a engenharia consiga entregar visibilidade, bloqueio de input e ordem de desenho.

Abaixo usamos Unity UGUI (Prefab, Canvas.sortingOrder, raycasts de Graphic) como terminologia principal. Godot: CanvasLayer layer + Control mouse_filter; Cocos: ordem de desenho de nós + BlockInputEvents / bloqueadores de tela cheia — mesmos critérios e tabelas. Detalhes de Safe Area, texto flutuante e ordenação de Canvas: Safe Area, números de dano flutuantes. Dispositivo, todos os idiomas e builds Release: checklist pré-lançamento itens 1, 2 e 5.

Critérios de falha (qualquer um = não aprovado): durante fluxos de modal / cinemática / pagamento, HUD subjacente ainda interativo (a menos que a especificação diga “meia tela ainda operável”); em combate, promoção não relacionada ao combate que não pode ser dispensada bloqueia a área de jogo; a mesma informação mostrada duas vezes (ex.: moedas na barra superior mais UI grande de moedas em combate) sem nota de produto; controles do estado anterior permanecem (visíveis ou ainda bloqueando raycasts); com idiomas de estresse multilíngue, o layout mínimo de combate ainda corta textos longos (DE/ES, etc.).


Defina os estados primeiro, depois os controles

Estado de jogo (exemplos)Objetivo do HUDGeralmente mostrarGeralmente ocultar / degradar
Lobby / homeNavegação + recursos + eventosMoeda no topo, abas inferiores, entrada de eventoHabilidades de combate, mira
Combate / em faseAções + informação de sobrevivênciaVida, habilidades, pausaAbas de lobby, banners de evento em tela cheia
Cinemática / CGSem input ou apenas pularBotão de pularQuase todo o HUD (ou apenas pular)
Modal (loja, configurações)Foco no diálogoControles dentro do modalHUD subjacente com raycasts desligados ou camada inteira oculta
Pagamento / conformidadeConcluir o fluxoTermos, confirmarSobreposições de promoção no jogo

Acorde o enum de estados com design + engenharia (ex.: GameUIState.Lobby | Combat | Cinematic | Modal). As raízes de UI assinam a máquina de estados (grupos de Prefab na Unity / ramos de cena no Godot / prefabs no Cocos) — evite SetActive / visible espalhados em cada script de botão.

Lobby vs combate: abas e entrada de evento devem ocultar em combate


Camadas e ordem de classificação (especificação neutra de engine)

Documente de baixo para cima (número maior = na frente):

CamadaConteúdoInput
L0Fundo em tela cheia / sangramento de UI de cenaNenhum
L1HUD de combate (vida, placeholder de joystick)Sim
L2Texto flutuante / dicas de combateSem raycasts (números de dano flutuantes)
L3Toast de sistema / letreiroGeralmente nenhum
L4Modal / diálogo em tela cheiaSim; bloqueia toques de L1–L3
L5Queda de rede, atualização forçadaSim; bloqueia tudo

Unity: sortingOrder / múltiplos Canvases; Godot: CanvasLayer layer; Cocos: ordem de irmãos sob um Canvas ou Canvas em camadas + máscara. Quando um modal abre, eleve L4 e desative raycasts de L1 / mouse_filter / BlockInput — não apenas “desenhado por cima mas os toques passam através”.

Pilha L0–L5: texto flutuante não interativo, modal bloqueia HUD de combate


Prioridade de informação (exemplo de combate)

Se o combate só pode manter N blocos legíveis em telas pequenas, limites padrão:

PrioridadeBlocoEstratégia de degradação
P0Vida / relacionado à condição de falhaNão ocultar
P0Pausa / sair do combateNão ocultar
P1Habilidades / ações primáriasMesclar em menos botões
P2Texto curto de objetivoÍcone + detalhe por toque longo
P3Moeda, entrada de eventoOculto em combate por padrão ou no menu de pausa
P3Entrada de chatRecolher para ícone

Degradações devem permanecer legíveis em idiomas de estresse multilíngue (DE/ES, etc.) — não testes de encolhimento apenas em inglês.

Combate P0–P3: ocultar moeda/eventos por padrão, manter vida e pausa


Aceitação (5 passos)

  1. Liste os estados — A partir do fluxo principal, enumere as transições (entrar na fase, abrir loja, CG, reconectar).
  2. Captura de tela por estado — Editor Play e dispositivo Release cada um (itens 1 e 5 do pré-lançamento); verifique se nós com SetActive(false) / visible=false ainda bloqueiam input.
  3. Verificação pontual de modal — Com loja / configurações / pagamento abertos, toques em antigos botões do HUD não devem fazer nada (raycast transparente em tela cheia ou máscara BlockInput).

Modal aberto: errado (toque atravessa botão de combate) vs correto (subjacente bloqueado)

  1. Cruze com Safe Area — Controles P0 de combate dentro do inset seguro (Safe Area).
  2. Versione os assets — A tabela de estados guia a visibilidade (Unity ScriptableObject / Godot Resource / config do Cocos) — não ocultações temporárias apenas na Scene.

O que o design deve adicionar

EntregávelPropósito
Wireframes por estado (pelo menos Lobby / Combate / Modal)Engenharia configura a visibilidade
Lista de “pode ocultar” em combate no mockEvitar pintar cada elemento em um único quadro
Especificação de modal: fundo escurecido, toque através permitido?Define a política de raycast
Ordem z da camada de promoção / eventoAlinhar com L4/L5

Designers não precisam escrever a máquina de estados — tabelas + anotações reduzem suposições.


Roteamento de correções

SintomaCausa provávelAçãoResponsável
Ainda dá para tocar no combate após o diálogoRaycasts subjacentes ligadosDesativar raycast de Graphic na camada do modal / máscara em tela cheiaEngenharia
Evento em tela cheia em combateSem tabela de estadosOcultar P3 em combate; aprovação do designEngenharia + design
HUD permanece após cinemáticaSem hook de estado CinematicMáquina de estados oculta o HUD uniformementeEngenharia
Duas exibições de moedaBarra de lobby não desligada em combateOcultar barra superior em Combate ou mesclar fonte de dadosEngenharia + design
Idioma longo corta no layout mínimo de combateDE/ES não testadosCaminho de overflow de idiomaDesign + engenharia

FAQ

Dois Canvases para lobby e combate?
Tudo bem — ou um Canvas com grupos. O que importa é visibilidade por estado + raycasts, não a quantidade de Canvases.

Loja de meia tela — isso é um modal?
Sim. Especifique se o subjacente é tocável e se a lógica de combate pausa.

Conflita com a UX de “menos é mais”?
A tabela de hierarquia é uma regra de produto, não estética; P3 pode reabrir para eventos via flags da máquina de estados.

Barras de status em world-space no 3D?
Elas são informação de combate, gerenciadas com L1; Regras de ordenação em world-space alinham-se com números de dano flutuantes e Safe Area.

Mais guias que podem interessar