Elke taal. Elke emoji. Elke stijl. Productiewaardig, uitbreidbaar, hoogperformant, gebouwd op industriestandaarden.
Unicode 17.0 · HarfBuzz · SDF/MSDF · Variabele lettertypen · Zero GC
Als je game Arabisch-, Hebreeuws-, Hindi-, Thai- of Bengaalssprekende spelers heeft — toont TextMeshPro hen kapotte tekst. Dit zijn geen randgevallen — het is een kwart van de wereldbevolking.

Gebouwd op dezelfde technologieën als Chrome, Firefox, Adobe en Android.
Elk schrift op aarde — getest en geslaagd. 891.757 officiële Unicode-conformiteitstests, nul fouten. Van Arabisch tot Tibetaans.
Eén lettertypebestand, oneindige variaties. Animeer gewicht, breedte, helling vloeiend — in realtime. Eén lettertype vervangt je hele lettertypefamilie.
100 UniText + 100 TextMeshPro instances die tegelijk Font Size animeren. Ze staan op dezelfde positie gestapeld, dus alle 200 zien eruit als één blok.
Tekstlay-out draait op alle CPU-kernen. 100, 500, 1000 tekstobjecten — prestaties schalen lineair.
Gezinnen 👨👩👧👦, vlaggen 🇬🇪, huidtinten 👋🏻👋🏿 — allemaal correct. Gebruikt apparaatlettertypen: geen impact op buildgrootte, altijd up-to-date.
Rich text-effecten via eenvoudige tags. Aanpasbare kleur, dikte, offset en zachtheid — volledig GPU-versneld.

Tekst in 3D-ruimte via MeshRenderer — geen Canvas vereist. Volledige functiepariteit: elke taal, elke emoji, elk effect — in wereldruimte.

Geen enkele andere Unity-tekstoplossing doet dit.
Chinees, Japans en Koreaans komen rechtstreeks uit het systeem — geen fonts in je build, geen voorgebakken atlas. Memory-mapped: alleen de gebruikte glyphs belanden in het RAM.
Thai, Lao en andere Zuidoost-Aziatische schriften gebruiken geen spaties tussen woorden. UniText weet waar regels afgebroken moeten worden — correct, elke keer.
Elke officiële Unicode-test. Geslaagd. Geen uitzonderingen, geen voorbehouden.
Echte benchmarks op een Android-productiebuild.
* 100 objecten, 10 iteraties, 3 warmups, ~2300 tekens per object (Latijn + Arabisch + Hebreeuws + Gemengd). UniText.UseParallel = false.
Glyphs toevoegen aan de texture-atlas
Lettertypecompressie houdt je uitgeleverde game piepklein
Decompressie binnen een milliseconde tijdens runtime — spelers merken er niets van.
De codebase vertelt het verhaal — UniText is een complete tekst-engine, geen component.
Veel meer engine — en toch sneller en slanker dan TMP.
Native HarfBuzz- en FreeType-bibliotheken gecompileerd voor elk belangrijk platform en elke architectuur.
Functievergelijking naast elkaar
| Functie | UniText | TextMesh Pro | UI Toolkit |
|---|---|---|---|
| Scripts & Internationalization | |||
| Bidirectional Text (UAX #9) | Requires plugin1 | Requires ATG2 | |
| Auto Text Direction | |||
| Arabic Script (joining) | Requires plugin1 | Requires ATG2 | |
| Arabic Kashida Justification | |||
| Hebrew Script | Requires plugin1 | Requires ATG2 | |
| Hindi / Devanagari (Indic) | Requires ATG2 | ||
| Complex OpenType Shaping (GSUB/GPOS) | HarfBuzz | Basic | Requires ATG2 |
| Language-Aware Shaping (locl, pan-CJK) | |||
| Thai / Lao Word Segmentation | Requires ATG2 | ||
| Korean Line Breaking | Requires ATG2 | ||
| Unicode Line Breaking (UAX #14) | Basic | Limited2 | |
| Unicode Version | 17.0 | 14.04 | 15.02 |
| Emoji | |||
| Emoji Sequences (ZWJ / skin tone / flags) | Limited3 | ||
| Emoji in RTL Text | Requires ATG2 | ||
| Fonts | |||
| Variable Fonts | |||
| Font Families (Bold / Italic / weight) | Limited | Limited | |
| Real OS Bold / Italic Cuts | Limited | Limited | |
| Small Caps (OpenType smcp) | Basic (faux) | Basic (faux) | |
| Automatic System-Font Fallback | Limited | ||
| Font Compression (build size) | Zstd | ||
| Per-Glyph Metric Overrides | Limited (not under ATG) | ||
| Rendering | |||
| MSDF Rendering | |||
| GPU Glyph Rasterization | |||
| 3D World-Space Text | (batched, ~1 draw call)8 | (no batching, draw calls per object)8 | (2D panel) |
| Lit / Shaded 3D Text | Limited (shader swap) | ||
| Extrude / Bevel Effect6 | (configurable stack + bevel) | Basic (shader bevel) | |
| Gradients (linear / radial / angular) | Limited (linear) | Limited (vertical) | |
| Per-Range Custom Shaders | |||
| Multi-Core Processing | Limited (6.5+)5 | ||
| Layout | |||
| Justified Text | (script-aware, CSS Text 3) | Limited7 | Limited (inter-word, markup) |
| Line Height Control | Limited (markup only) | ||
| Paragraph Spacing | Limited (broken under ATG) | ||
| Text Indent | Limited (markup only) | ||
| Lists (ordered / nested) | |||
| Ruby / Furigana | |||
| Padding (box-model) | Limited (margin) | Limited (element box) | |
| Text-Box Trim (cap-height) | |||
| Font-Size-Adjust (x-height match) | |||
| Markup & Interaction | |||
| Configurable / Custom Tags | |||
| Markdown Syntax | |||
| Interactive Links / Hashtags | Limited (no events) | (experimental) | |
| Text Selection / Highlighting | Limited (input field) | Limited (TextField) | |
| World-Space Pointer Events | Limited (panel quad) | ||
| Support & Maintenance | |||
| Direct Developer Support | Fast, dedicated9 | (Unity issue tracker / forums) | (Unity issue tracker / forums) |
UniText Folio voegt selectie, bewerking, IME, klembord, invoergedrag en decoratoren toe — met native BiDi- en grafeemsegmentondersteuning.
| Functie | UniText | TMP InputField | UI Toolkit TextField |
|---|---|---|---|
| Components & Modes | |||
| Read-Only Selectable Text | Limited (full field chrome) | ||
| Editable Text without Field Chrome | Limited (cosmetic) | Limited | |
| World-Space (3D) Editing | Limited (World-Space Canvas only) | Limited (2D panel) | |
| Backend-Independent Input | Limited (breaks under Input System-only) | ||
| Selection & Caret | |||
| BiDi / RTL Caret & Selection | Requires plugin1 | Requires ATG2 | |
| Grapheme-Cluster Caret (emoji / ZWJ) | Limited (surrogate only) | Limited (codepoint only) | |
| Word / Line / Paragraph Selection | Limited (no triple-click) | ||
| Platform Key Bindings (macOS / Win / Linux) | Basic (Ctrl→Cmd only) | Limited | |
| Vertical Caret Column Memory | |||
| Editing | |||
| Undo / Redo | 3 | ||
| Word / Line Delete (Ctrl+Backspace) | |||
| Rich-Text WYSIWYG Editing | 4 | ||
| Programmatic Edit with Undo Policy | |||
| Input Sanitization (surrogates / paste cap) | Limited | Limited | |
| IME & Composition | |||
| IME Composition (CJK / dead keys) | Limited | ||
| Non-Destructive Composition + Clause Styling | Limited (single underline) | Limited (no clauses) | |
| Clipboard | |||
| Rich Multi-Format Clipboard (HTML / Markdown) | 5 | 5 | |
| Image / Media Paste | |||
| Input Behaviors, Filters & Validation | |||
| Built-in Input Filters (integer / email / …) | Basic (numeric only) | ||
| Live Input Mask (phone / card / date) | |||
| Validation Status & Message | |||
| Composable / Extensible Behavior Pipeline | |||
| Field Decorators | |||
| Floating Label (Material) | |||
| Character Counter | |||
| Supporting / Error Text | |||
| Custom / Extensible Decorators | |||
| Menus & Mobile | |||
| Context Menu (cut / copy / paste) | Limited (Editor-only)6 | ||
| Touch Selection Handles | |||
| Magnifier Loupe | |||
| Soft-Keyboard Configuration | Limited | Limited | |
| Keyboard Avoidance | |||
| Focus & Accessibility | |||
| Focus Guard (external toolbar) | Limited | ||
| Editing Accessibility (screen-reader) | Limited (manual) | ||
| Pluggable / Non-Blinking Caret | Limited | Basic | |
| Extensibility | |||
| Skinnable Selection Highlight | Limited | Basic | |
| Rich Pointer-Event Model | Basic | Limited | |
Stop met vechten tegen kapot Arabisch, ontbrekende emoji en RTL-bugs. UniText regelt het allemaal.