Números de Dano Flutuantes: Aceite de Handoff e Implementação na Engine
Critérios de falha quando popups ficam borrados, perdem glifos, ordenam errado ou travam; escolha entre TMP e dígitos bitmap, pools e ordem de Canvas, passos de aceite no Unity UGUI e como a arte de dígitos do design se encaixa.
- game-ui-design
- game-dev-ai
- ui-to-engine
- bitmap-font
- unity
- godot
- cocos
- vberai
- 2026
Quando dez acertos acontecem em um segundo, problemas de texto flutuante raramente são resolvidos com “fonte maior”: nítido no Editor, suave no dispositivo; cor de crítico funciona mas “K” ou o sinal de menos está faltando; números ficam sobre botões do HUD e roubam toques; ou Instantiate causa picos de GC. Popups são UI de alta frequência e curta duração—aceite-os separadamente do HUD estático.
Abaixo o foco é Unity UGUI / TextMeshPro (RectTransform, Canvas, sortingOrder). Godot: Label + Theme / bitmap; Cocos: Label + bitmap font + pool—mesmos critérios e ordem de passos. Casca do HUD estático: checklist de engine + MCP. Item 3 pré-lançamento (“arte borrada / números de dano”)—reteste em dispositivos Release.
Critérios de falha (qualquer um = não passou): legibilidade prejudicada (borrão, corte, glifos ausentes); tempo de frame em combate claramente pior que a linha de base sem popup nos dispositivos-alvo; popups bloqueiam toques necessários com raycasts ainda ativos; visuais de crítico/cura/erro não correspondem à especificação orientada por dados; formatação de números inconsistente com a tabela de design (ex.: 1.2K vs 1200 misturados).

Escolha primeiro: TMP ou dígitos bitmap
| Cenário | Melhor encaixe | Armadilha típica |
|---|---|---|
Dígitos + poucos símbolos (0-9 . + - %) | Bitmap / malha de dígitos customizada | Lacunas no charset; filtro errado → borrão |
| Strings localizadas completas (“Critical”, “Immune”) | TMP + tabela de strings | Instabilidade de largura ao misturar com dígitos |
| Contorno pesado, gradiente, estilo animado | Bitmap ou sequência de frames | Estado ausente → fallback de cor errado |
| Protótipo | TMP SDF padrão | Sem resolução de referência → suave no dispositivo |
Se o borrão no dispositivo persistir: Canvas Scaler reference, padding/atlas do TMP, Filter Mode do bitmap (muitas vezes Point)—depois charset ou qualidade do SDF. Veja planejamento de charset de bitmap font e item 3 pré-lançamento.

Unity: construir e aceitar (6 passos)
1. Canvas dedicado ou ordenação explícita
- Use um Canvas dedicado (
Screen Space - Cameraalinhado com a câmera de combate) ou uma camada filha do HUD. - Defina
sortingOrderacima da UI de mundo, abaixo de popups modais;raycastTarget = falsenos gráficos do popup. - Popups de mundo: um World Canvas compartilhado—não um Canvas por número.

2. Pool de objetos
- Pré-aqueça ≥ pico de contagem em tela (estresse de habilidades; muitas vezes 16–32 no mínimo).
- Ao reciclar: redefina posição, alpha, escala, estado de animação, texto.
- Sem
Instantiate/Destroypor acerto.
3. Separar dados da apresentação
- O combate emite
DamagePopupEvent(valor, tipo, posição no mundo/ponto de ancoragem, flag de crítico). - A apresentação escolhe cor, prefixo, abreviação (K/M/B), curvas.
- A tabela de design mapeia tipo → Prefab de estilo (Normal / Crit / Heal / Miss / Block).
4. Movimento e legibilidade
- Típico: subir flutuando + fade + leve escala; 0,4–0,8s; escalonar ou enfileirar na mesma âncora.
- Múltiplos acertos no mesmo frame: mesclar ou deslocar 1–2 frames para evitar sobreposição.
- Se o tamanho segue a distância da câmera, use uma regra de escala de mundo—não misture com a escala do Canvas de UI duas vezes.

5. Charset e formatação
- Bitmap: verifique
0-9 . , + - % x K M Be projete regras de abreviação. - TMP: divida campos ou sprites—não dependa de uma única string para trocar fontes.
- Com transbordo de locale: não rasterize frases localizadas completas como arte de popup.
6. Smoke no dispositivo
- Dev e Release: 30s de enxame de mobs, habilidade de chefe com múltiplos ticks, dispositivo com pouca RAM.
- Compare o tempo de frame com vs sem popups; capture tela de crítico/cura/erro uma vez cada.
- Os critérios de aprovação vivem no Prefab + configuração de pool, não apenas na Scene de teste.
Handoff de design (dígitos e estados)
| Entrega | Uso |
|---|---|
| Arte de dígitos ou estilos TMP por estado (Normal/Crit/Heal/Miss) | Prefab/Material orientado por tabela |
| Contorno/sombra na resolução-alvo | Verificação de nitidez no dispositivo |
| Cor + ícone de crítico/combo nos dígitos | Evite tints codificados no código |
| Escopo do charset (apenas dígitos vs unidades localizadas) | Bitmap ou tabela de strings |
Checklist de handoff de design: se os popups forem raster, especifique por locale ou não; padrão dígitos bitmap + rótulos TMP.
Roteamento de correções
| Sintoma | Causa provável | Ação | Responsável |
|---|---|---|---|
| Suave no dispositivo, nítido no Editor | Scaler / SDF / filtro de bitmap | Alinhe a resolução de referência; filtro Point; padding SDF | Engenharia |
| Glifos ausentes | Charset / símbolos | Estenda o charset; ou TMP | Engenharia + Design |
| Bloqueia botões | Ordenação / raycast | Reduza a ordem ou desative o raycast | Engenharia |
| Travamento | Sem pool / FX+texto demais | Pool; mescle pops do mesmo frame | Engenharia |
| Aparência de crítico errada | Cores codificadas | Tipo→Prefab; estados de design | Engenharia + Design |
| Separado do estilo do HUD | Dois pipelines de fonte | Unifique a fonte ou o Theme | Design + Engenharia |
Perguntas frequentes
Popups precisam ser World Space?
Não. 2D fixo muitas vezes usa Screen Space - Camera; câmeras 3D livres muitas vezes usam World Canvas. Escolha um e documente.
Partículas de UI para efeito?
Ok para FX; dígitos permanecem Label/TMP/malha para locale e pooling.
Um script com lógica de dano?
Emita eventos da lógica; alternância de apresentação (ShowDamageNumbers) para testes e acessibilidade.
Números grandes?
Uma regra de formatador vinda do design; implementação única—sem copiar e colar entre scripts de UI.
Continuar lendo
Mais guias que podem interessar
Godot 4: Coloque Regras de Sinais no Seu Prompt para o MCP Conectar a Barra de Vida
Antes de pedir ao Godot MCP no Cursor, defina um contrato de sinal health_changed para o HUD conectar sem caminhos get_node profundos—modelos de prompt, exemplos GDScript, anti-padrões e aceitação no Play.
- Godot MCP
- Godot 4
- signals
- HUD
HUD e Theme no Godot 4: Handoff da Árvore de Controles e Aceite no Play
Aceite de Theme, StyleBox, âncoras de container e minimum_size quando o Figma chega ao Godot 4. Barras de checklist do Unity UGUI—seis passos de Play e roteamento de correções.
- game-ui-design
- game-dev-ai
- ui-to-engine
- godot
Guia de Instalação do Unity MCP: Adicionar Pacote do Disco e Conectar uma IDE de IA
Instale o VberAI Unity MCP Pro passo a passo—Package Manager Add package from disk, ative sua conta, inicie o servidor MCP local (porta padrão 6589) e verifique a conexão no Cursor, Claude, Codex ou outras IDEs de IA compatíveis com MCP.
- unity
- mcp
- cursor
- tutorial