Первый и единственный
движок текста для Unity

Любой язык. Любой эмодзи. Любой стиль. Production-grade, расширяемый, высокопроизводительный, построенный на индустриальных стандартах.

Unicode 17.0 · HarfBuzz · SDF/MSDF · Variable Fonts · Zero GC

150+
Поддерживаемых языков
100%
Совместимость с Unicode
UI + 3D
Рендеринг текста
Поддержка эмодзи
Проблема

1,8 миллиарда пользователей забыты

Если в вашей игре есть арабо-, иврито-, хинди-, тайско- или бенгалоговорящие игроки — TextMeshPro показывает им сломанный текст. Это не редкие случаи — это четверть населения планеты.

Если в вашей игре есть арабо-, иврито-, хинди-, тайско- или бенгалоговорящие игроки — TextMeshPro показывает им сломанный текст. Это не редкие случаи — это четверть населения планеты.
1.8B+
Пользователей, чьи языки TextMeshPro не может корректно отобразить
العربية400M
हिन्दी600M
বাংলা230M
עברית9M
ไทย60M
தமிழ்80M
Возможности

Всё, что вам нужно

Построен на тех же технологиях, что Chrome, Firefox, Adobe и Android.

Все системы письма

Каждая письменность на Земле — проверена и пройдена. 891 757 официальных тестов Unicode на соответствие, ноль ошибок. От арабского до тибетского.

Вариативные шрифты

Один файл шрифта, бесконечные вариации. Плавная анимация насыщенности, ширины, наклона — в реальном времени. Один шрифт заменяет всё семейство.

100 экземпляров UniText + 100 экземпляров TextMeshPro одновременно анимируют Font Size. Они расположены в одной точке, поэтому все 200 выглядят как один блок.

Многоядерная обработка

Вёрстка текста распределяется по всем ядрам CPU. 100, 500, 1000 текстовых объектов — производительность масштабируется линейно.

Полноцветные эмодзи

Семьи 👨‍👩‍👧‍👦, флаги 🇬🇪, оттенки кожи 👋🏻👋🏿 — всё корректно. Использует системные шрифты: ноль влияния на размер билда, всегда актуальные.

Обводка и тень

Rich text эффекты через простые теги. Настраиваемые цвет, толщина, смещение и мягкость — всё на GPU.

3D текст в мировом пространстве

3D текст в мировом пространстве

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

CJK без файлов шрифтов

Ни одно другое текстовое решение для Unity так не умеет.

CJK без файлов шрифтов

Китайский, японский и корейский берутся прямо из системы — никаких шрифтов в сборке и запечённых атласов. Memory-mapped: в память попадают только используемые глифы.

Умный перенос слов

Тайский, лаосский и другие языки ЮВА не используют пробелы между словами. UniText знает, где разбивать строки — корректно, каждый раз.

Совместимость

100% Unicode Conformance

Каждый официальный тест Unicode. Пройден. Без исключений, без оговорок.

UAX #9
BiDi Algorithm
861,948
100% PASS
UAX #14
Line Breaking
19,338
100% PASS
UAX #24
Script Detection
9,705
100% PASS
UAX #29
Grapheme Clusters
766
100% PASS
Unicode 17.0.0
Последний стандарт Unicode (2024) — всегда актуально
Производительность

Сравнение бенчмарков

Реальные бенчмарки на production-сборке для Android.

Сравнение скорости

Создание объектов
UniText
166ms×4.9 быстрее
TMP
572ms
UI Toolkit
809ms
Полный rebuild
UniText
136ms×5.4 быстрее
TMP
398ms
UI Toolkit
731ms
Вёрстка
UniText
71ms×20.7 быстрее
TMP
1468ms
UI Toolkit
241ms
Перестроение меша
UniText
60ms×7.1 быстрее
TMP
424ms
UI Toolkit
143ms

Память и GC

Циклы GC (создание)
3
UniText
147
TMP
0
UI Toolkit
Выделение памяти (создание)
292 MB
UniText
2249 MB
TMP
×8 больше
400 MB
UI Toolkit
×1.4 больше
Аллокации в runtime (на операцию)
90 KB
UniText
13.8 MB
TMP
×153 больше
39.6 MB
UI Toolkit
×440 больше

* 100 объектов, 10 итераций, 3 прогрева, ~2300 символов на объект (латиница + арабский + иврит + смешанный). UniText.UseParallel = false.

Рендеринг глифов

Добавление глифов в атлас текстуры

UniText FreeType
4.7–15.2×
быстрее
Unity FontEngine

Меньше билды и бандлы

Сжатие шрифтов делает финальную игру компактнее

12 MB
Исходный шрифт
4.4 MB
В вашем билде

Распаковка в runtime занимает доли миллисекунды — игроки не заметят.

Масштаб

Спроектирован на другом масштабе

Кодовая база говорит сама за себя — UniText это полноценный текстовый движок, а не компонент.

765
UniText · Исходных файлов
151 759 Строк кода
116
TMP · Исходных файлов
41 892 Строк кода
6.6× больше · Исходных файлов3.6× больше · Строк кода

Значительно больше движка — и при этом быстрее и легче TMP.

Кроссплатформенность

Все платформы

Нативные библиотеки HarfBuzz и FreeType, скомпилированные для всех основных платформ и архитектур.

Windows
x86x64ARM64
macOS
x64Apple Silicon
Linux
x64
Android
ARMv7ARM64x86x64
iOS
ARM64
WebGL
2.0
Unity 2022.3 LTS+
Сравнение

UniText vs TMP vs UI Toolkit

Сравнение возможностей бок о бок

ВозможностьUniTextTextMesh ProUI 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)
  1. 1.TMP has no native BiDi/Arabic/Hebrew. The usual plugin (RTL Text Mesh Pro) is a workaround, not real RTL: no proper Unicode Bidirectional Algorithm (UAX #9) — a heuristic glyph "fixer" whose own docs note mixed English/RTL multiline text breaks — and Arabic-script shaping via a fixed presentation-form table only (no OpenType shaping, no other complex scripts).
  2. 2.UI Toolkit: requires the Advanced Text Generator (HarfBuzz/ICU) — opt-in in Unity 6.4, default from 6.5. Without ATG there is no shaping/BiDi/ICU.
  3. 3.TMP does not compose ZWJ/skin-tone/flag sequences at all; UI Toolkit attempts them but Unity itself flags emoji with flags and skin tones as "problematic".
  4. 4.TMP has no bundled UCD table: emoji data tracks Unicode 14.0, character properties come from the .NET runtime.
  5. 5.UI Toolkit text-generation parallelization ships in Unity 6.5.
  6. 6.No engine builds true extruded 3D geometry. UniText stacks offset quad copies (2.5D, z=0) with a near→far gradient and a bevel mode; TMP uses a faux bevel via normal-map shading.
  7. 7.TMP fixed-ratio distribution (wordWrappingRatios 0.4) forces ~40% of the slack into inter-letter spacing on every script (not script-aware), hardcodes last-line alignment (no text-align-last), and tolerates 5% box overflow.
  8. 8.UniText merges all UniTextWorld components sharing a material and sorting into one mesh → typically a single draw call per group (extra meshes only past the ~64k-vertex limit). World-space TextMeshPro renders each object as its own MeshRenderer with no cross-object batching, so draw calls grow linearly with the number of text objects.
  9. 9.UniText direct developer support: responses within 10 minutes, bug fixes from 1 hour to 1 day, feature implementation from 3 hours to 3 days. TMP and UI Toolkit only have Unity’s official issue tracker and community forums, with no guaranteed response or fix times.
UniText Folio

Интерактивный и редактируемый текст

UniText Folio добавляет выделение, редактирование, IME, буфер обмена, поведения ввода и декораторы — с нативной поддержкой BiDi и графемных кластеров.

ВозможностьUniTextTMP InputFieldUI 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
  1. 1.TMP has no native BiDi/Arabic. RTL editing needs a third-party plugin (RTL Text Mesh Pro) — a heuristic glyph "fixer", not real RTL: no proper Unicode Bidirectional Algorithm (UAX #9), only fixed Arabic-script presentation forms (no OpenType shaping), with known mixed-direction multiline issues.
  2. 2.UI Toolkit RTL/complex-script editing requires the Advanced Text Generator (opt-in in Unity 6.4, default from 6.5).
  3. 3.UI Toolkit’s runtime TextField has no undo/redo (the handler’s UndoRedoPerformed is an unimplemented TODO); editor IMGUI fields are a separate path.
  4. 4.TMP’s "Allow Rich Text Editing" edits the raw markup string (tags preserved) — there is no command to toggle bold/italic/color over a selection.
  5. 5.Both TMP and UI Toolkit copy/paste plain text only via Unity’s systemCopyBuffer — no HTML/Markdown/RTF or images.
  6. 6.UI Toolkit’s cut/copy/paste context menu is wired only in the Editor (EditorContextualMenuManager); a built player has no built-in text context menu.

Готовы поддержать все языки?

Хватит бороться со сломанным арабским, отсутствующими эмодзи и багами RTL. UniText решает всё.

Вопросы?: [email protected]