TGViewer
Unity Architect: архитектура unity проектов Unity Architect: архитектура unity проектов @uniarchitect · 5.23K subscribers
Post #173 4.22K
UNITEXT

TextMeshPro — это покупка 2017 года, которую Unity встроила и с тех пор поддерживала на плаву, исправляя баги.

Я не гуру нюансов отрисовки текста, но я никогда и не задумывался что TMP, по стандарту Unicode, не способен отобразить все многообразие символов правильно 😱

Я решил разобраться подробнее в различиях и фичах, чтобы понять в чем инновационность UniText.

🔸Эмодзи

Чтобы показать эмодзи в TMP, тебе нужно: создать текстурный атлас со спрайтами, импортировать его, разметить каждый спрайт, привязать к компоненту.

И всё равно ты получишь статичную картинку без поддержки Zero Width Joiner (семьи, флаги, тона кожи).

В UniText ты просто пишешь "Привет! 👋🏽" — и оно работает. Эмодзи берутся нативно с каждой платформы: Segoe на Windows, Apple Color Emoji на iOS, NotoColorEmoji на Android/Linux.

Мне смешно об этом писать, но теперь emoji просто есть и не нужно костылить fallback шрифт в новых версиях и свой атлас emoji в старых версиях TMP.

🔸RTL и смешанный текст

Арабский, иврит, урду, фарси — ни одно решение в Unity не реализует Bidirectional алгоритм по спецификации Unicode.

Костыль вроде RTLTMPro покрывает базовый кейс, но ломается на смешанном тексте — когда в одной строке арабский и английский.

Правильное отображение смешанного текста — это не просто "перевернуть строку".
В Unicode разработали для этого целую спецификацию UAX #9 с 861 тысячей тестов.

Каждый тест — конкретная комбинация символов разных направлений и ожидаемый порядок отображения.
Проходит все тесты — текст корректен в любой комбинации языков.

UniText проходит их все:
▫️ Bidirectional (направление текста)
▫️ Line Breaking (где можно переносить строку)
▫️ Grapheme Clusters (что считать одним "символом" — важно для эмодзи и составных букв)

TMP ничего из этого не проходит на 100% 🫠
Т.е. нет гарантий что чат в вашей игре будет правильно показывать что пользователь написал.

🔸Шрифты без боли


1️⃣ TMP растеризует глифы оффлайн в редакторе и сериализует атласы на диск.
Отсюда грязные файлы в git, конфликты при мёрже, раздутый билд.

UniText растеризует глифы в runtime — атласы не сериализуются, в проекте хранятся только байты шрифтов (UniTextFont.cs).
Никаких грязных файлов, никаких конфликтов.

Кто вдруг не понял:
В UniText не нужно постоянно отменять изменения в папке как Text Mesh Pro 🤯


2️⃣ В UniText один компонент рендерит текст на любом языке через стек шрифтов с fallback — первый шрифт основной, остальные подхватывают недостающие глифы (UniTextFontStack.cs).

3️⃣ А Font Subsetter позволяет вырезать из шрифта только нужные символы — полезно когда из 10МБ шрифта тебе нужны только символы валют.

И это я лишь малая часть отличий.

🔸Итого

🔻UniText это координально другой подход при работе с текстом, который на голову выше TMP.

Делаю ставку что это новый стандарт в Unity и скоро он будет на каждом проекте 🫡

Там сейчас 2 версии доступно:
1.0 — бесплатный и open-source. Всё что описано выше — доступно прямо сейчас.

2.0 — платная версия с, компрессией шрифтов, единым атласом с дефрагментацией, 3D-текстом и батчингом всего текста в 1 draw call 😍и полностью переработанной системой стилей (см. видео к посту).

🔸Рекомендация

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

Для больших проектов с десятком языков это может стать значительной победой.

Так что бегите скорее выпрашивать лицензию у компании для теста. Чисто изян способ реально улучшить метрики проекта 🛞

Мне посчастливилось знать лично разработчика этого плагина, поэтому пишите комментарии с вопросами и обязательно накиньте ⭐️ на GitHub ❤️‍🔥

📱 UniText Open Source
Документация
📱 Discord сообщество

Ставь 👍 если тебе заходит такого рода контент!
Ты знаешь кому переслать эту статью 💪

#будни@UniArchitect
  • 👍 71
  • 🔥 17
  • 🤨 5
  • 🤷‍♂ 1
More from @uniarchitect
  1. Jul 24, 2026Post #199
  2. Jul 12, 2026AI НЕ ДЕЛАЕТ ВАС ПРОДУКТИВНЕЕ Незыблемый факт: AI уже очень хорош в маленьких задачах. Нап…
  3. Jul 9, 2026Post #196
  4. Jul 7, 2026UNITY BUILD PIPELINE ПО КИРПИЧИКАМ Полгода назад я решил попробовать активность в блоге, г…
  5. Jul 4, 2026ПРОКЛЯТИЕ ПЕРЕИСПОЛЬЗУЕМОСТИ Делюсь болью. Я последние 5 лет на разных уровнях у разработч…
  6. Jun 29, 2026AI КАК РЕДАКТОР, А НЕ АВТОР Это вторая статья из серии про AI. Первая тут. Когда я запуска…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →