Pierwszy i jedyny
silnik tekstowy dla Unity

Każdy język. Każde emoji. Każdy styl. Klasy produkcyjnej, rozszerzalny, wysokowydajny, zbudowany na standardach branżowych.

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

150+
Obsługiwanych języków
100%
Zgodność z Unicode
UI + 3D
Renderowanie tekstu
Obsługa emoji
Problem

1,8 miliarda użytkowników pominiętych

Jeśli Twoja gra ma graczy mówiących po arabsku, hebrajsku, hindi, tajsku lub bengalsku — TextMeshPro pokazuje im zepsuty tekst. To nie są przypadki brzegowe — to ćwierć światowej populacji.

Jeśli Twoja gra ma graczy mówiących po arabsku, hebrajsku, hindi, tajsku lub bengalsku — TextMeshPro pokazuje im zepsuty tekst. To nie są przypadki brzegowe — to ćwierć światowej populacji.
1.8B+
Użytkowników, których języki TextMeshPro nie potrafi poprawnie wyświetlić
العربية400M
हिन्दी600M
বাংলা230M
עברית9M
ไทย60M
தமிழ்80M
Funkcje

Wszystko czego potrzebujesz

Zbudowany na tych samych technologiach, których używają Chrome, Firefox, Adobe i Android.

Każdy system pisma

Każde pismo na Ziemi — przetestowane i zaliczone. 891 757 oficjalnych testów zgodności Unicode, zero błędów. Od arabskiego po tybetański.

Variable Fonts

Jeden plik czcionki, nieskończone warianty. Płynna animacja grubości, szerokości, pochylenia — w czasie rzeczywistym. Jedna czcionka zastępuje całą rodzinę.

100 instancji UniText + 100 instancji TextMeshPro animujących Font Size jednocześnie. Są ułożone w tej samej pozycji, więc wszystkie 200 wygląda jak jeden blok.

Przetwarzanie wielordzeniowe

Layout tekstu działa na wszystkich rdzeniach procesora. 100, 500, 1000 obiektów tekstowych — wydajność skaluje się liniowo.

Kolorowe emoji

Rodziny 👨‍👩‍👧‍👦, flagi 🇬🇪, odcienie skóry 👋🏻👋🏿 — wszystko poprawnie. Używa czcionek urządzenia: zero wpływu na rozmiar buildu, zawsze aktualne.

Obrys i cień

Efekty rich text za pomocą prostych tagów. Konfigurowalny kolor, grubość, przesunięcie i miękkość — wszystko akcelerowane przez GPU.

Tekst 3D w przestrzeni świata

Tekst 3D w przestrzeni świata

Tekst w przestrzeni 3D przez MeshRenderer — bez Canvas. Pełna zgodność funkcji: każdy język, każde emoji, każdy efekt — w przestrzeni świata.

CJK bez plików czcionek

Żadne inne rozwiązanie tekstowe dla Unity tak nie potrafi.

CJK bez plików czcionek

Chiński, japoński i koreański pochodzą prosto z systemu — żadnych czcionek w buildzie ani wypalonego atlasu. Memory-mapped: do RAM trafiają tylko używane glify.

Inteligentne łamanie słów

Tajski, laotański i inne pisma Azji Południowo-Wschodniej nie używają spacji między słowami. UniText wie, gdzie łamać wiersze — poprawnie, za każdym razem.

Zgodność

100% zgodność z Unicode

Każdy oficjalny test Unicode. Zaliczony. Bez wyjątków, bez gwiazdek.

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
Najnowszy standard Unicode (2024) — zawsze aktualny
Wydajność

Porównanie benchmarków

Prawdziwe benchmarki na produkcyjnym buildzie Android.

Porównanie prędkości

Tworzenie obiektów
UniText
166ms×4.9 szybciej
TMP
572ms
UI Toolkit
809ms
Pełna przebudowa
UniText
136ms×5.4 szybciej
TMP
398ms
UI Toolkit
731ms
Layout
UniText
71ms×20.7 szybciej
TMP
1468ms
UI Toolkit
241ms
Przebudowa meshu
UniText
60ms×7.1 szybciej
TMP
424ms
UI Toolkit
143ms

Pamięć i GC

Cykle GC (tworzenie)
3
UniText
147
TMP
0
UI Toolkit
Alokacja pamięci (tworzenie)
292 MB
UniText
2249 MB
TMP
×8 więcej
400 MB
UI Toolkit
×1.4 więcej
Alokacje w runtime (na operację)
90 KB
UniText
13.8 MB
TMP
×153 więcej
39.6 MB
UI Toolkit
×440 więcej

* 100 obiektów, 10 iteracji, 3 rozgrzewki, ~2300 znaków na obiekt (łaciński + arabski + hebrajski + mieszany). UniText.UseParallel = false.

Renderowanie glifów

Dodawanie glifów do atlasu tekstur

UniText FreeType
4.7–15.2×
szybciej
Unity FontEngine

Mniejsze buildy i bundle

Kompresja czcionek utrzymuje rozmiar Twojej gry mały

12 MB
Oryginalna czcionka
4.4 MB
W Twoim buildzie

Dekompresja w czasie rzeczywistym poniżej milisekundy — gracze tego nie zauważą.

Skala

Zaprojektowany na inną skalę

Kod mówi sam za siebie — UniText to kompletny silnik tekstowy, nie komponent.

765
UniText · Pliki źródłowe
151 759 Linie kodu
116
TMP · Pliki źródłowe
41 892 Linie kodu
6.6× więcej · Pliki źródłowe3.6× więcej · Linie kodu

Znacznie więcej silnika — a wciąż szybszy i lżejszy niż TMP.

Wieloplatformowość

Wszystkie platformy obsługiwane

Natywne biblioteki HarfBuzz i FreeType skompilowane dla każdej głównej platformy i architektury.

Windows
x86x64ARM64
macOS
x64Apple Silicon
Linux
x64
Android
ARMv7ARM64x86x64
iOS
ARM64
WebGL
2.0
Unity 2022.3 LTS+
Porównanie

UniText vs TMP vs UI Toolkit

Porównanie funkcji obok siebie

FunkcjaUniTextTextMesh 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

Interaktywny i edytowalny tekst

UniText Folio dodaje zaznaczanie, edycję, IME, schowek, zachowania wejściowe i dekoratory — z natywną obsługą BiDi i klastrów grafemowych.

FunkcjaUniTextTMP 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.

Gotowy wspierać każdy język?

Przestań walczyć ze złamanym arabskim, brakującymi emoji i błędami RTL. UniText obsługuje wszystko.