Quick answer: Font Asset → Generation Settings → Atlas Population Mode = Dynamic. Add fallback CJK / emoji font assets to Fallback Font Assets.

Translation team adds a French quote with curly quotes. Game shows boxes. The atlas was baked ASCII-only.

The Symptom

Specific characters render as outlined empty rectangles. ASCII renders fine; accented Latin / curly punctuation / non-Latin scripts do not.

The Fix

Inter SDF (font asset) → Generation Settings:
  Source Font File:           Inter.ttf
  Atlas Population Mode:      Dynamic
  Atlas Render Mode:          SDFAA
  Atlas Width / Height:       1024 / 1024

Fallback Font Assets:
  + NotoSansCJK SDF
  + NotoEmoji SDF

Dynamic adds glyphs at runtime up to atlas size; once full, oldest LRU glyphs are replaced. Fallback chain handles scripts the primary doesn’t support.

Verifying

Display localized strings: French, Spanish, Japanese, emoji. All render. Atlas inspector shows growth as new glyphs are added.

“Dynamic atlas. Fallback chain. Tofu replaced with letters.”

Related Issues

For UI Toolkit binding, see UXML binding. For input composite, see composite.

Dynamic + fallback. Glyphs render.