Любой язык. Любой эмодзи. Любой стиль. Production-grade, расширяемый, высокопроизводительный, построенный на индустриальных стандартах.
Unicode 17.0 · HarfBuzz · SDF/MSDF · Variable Fonts · Zero GC
Если в вашей игре есть арабо-, иврито-, хинди-, тайско- или бенгалоговорящие игроки — TextMeshPro показывает им сломанный текст. Это не редкие случаи — это четверть населения планеты.

Построен на тех же технологиях, что Chrome, Firefox, Adobe и Android.
Каждая письменность на Земле — проверена и пройдена. 891 757 официальных тестов Unicode на соответствие, ноль ошибок. От арабского до тибетского.
Один файл шрифта, бесконечные вариации. Плавная анимация насыщенности, ширины, наклона — в реальном времени. Один шрифт заменяет всё семейство.
100 экземпляров UniText + 100 экземпляров TextMeshPro одновременно анимируют Font Size. Они расположены в одной точке, поэтому все 200 выглядят как один блок.
Вёрстка текста распределяется по всем ядрам CPU. 100, 500, 1000 текстовых объектов — производительность масштабируется линейно.
Семьи 👨👩👧👦, флаги 🇬🇪, оттенки кожи 👋🏻👋🏿 — всё корректно. Использует системные шрифты: ноль влияния на размер билда, всегда актуальные.
Rich text эффекты через простые теги. Настраиваемые цвет, толщина, смещение и мягкость — всё на GPU.

Текст в 3D-пространстве через MeshRenderer — без Canvas. Полный паритет функций: любой язык, любой эмодзи, любой эффект — в мировом пространстве.

Ни одно другое текстовое решение для Unity так не умеет.
Китайский, японский и корейский берутся прямо из системы — никаких шрифтов в сборке и запечённых атласов. Memory-mapped: в память попадают только используемые глифы.
Тайский, лаосский и другие языки ЮВА не используют пробелы между словами. UniText знает, где разбивать строки — корректно, каждый раз.
Каждый официальный тест Unicode. Пройден. Без исключений, без оговорок.
Реальные бенчмарки на production-сборке для Android.
* 100 объектов, 10 итераций, 3 прогрева, ~2300 символов на объект (латиница + арабский + иврит + смешанный). UniText.UseParallel = false.
Добавление глифов в атлас текстуры
Сжатие шрифтов делает финальную игру компактнее
Распаковка в runtime занимает доли миллисекунды — игроки не заметят.
Кодовая база говорит сама за себя — UniText это полноценный текстовый движок, а не компонент.
Значительно больше движка — и при этом быстрее и легче TMP.
Нативные библиотеки HarfBuzz и FreeType, скомпилированные для всех основных платформ и архитектур.
Сравнение возможностей бок о бок
| Возможность | 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 добавляет выделение, редактирование, IME, буфер обмена, поведения ввода и декораторы — с нативной поддержкой BiDi и графемных кластеров.
| Возможность | 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 | |
Хватит бороться со сломанным арабским, отсутствующими эмодзи и багами RTL. UniText решает всё.