TextMeshPro уже давно часть Unity и в последних версиях заменил основной компонент Text, теперь всё старое хранится в пункте меню Legacy. Не буду описывать все преимущества перед старым текстовым компонентом, это примерно как сравнивать Блокнот и Word.
Шрифт который используется по умолчанию поддерживает все основные символы, но он обычный/скучный/дефолтный, примерно как китовый объектив у фотоаппарата 😅 Для добавления в свою игру нового красивого/необычного/индивидуального шрифта, надо проделать несколько действий.
Итак, что необходимо подготовить:
- Сам шрифт TTF (OTF), не забывайте про лицензию ☝️
- Набор символов или unicode range, который будете использовать
Надо понимать, что во многих шрифтах может не быть необходимых символов. Проверить можно через классный сервис Wakamai Fondue.
У Google есть бесплатные Noto Fonts которые тоже немного скучные, но поддерживают все языки!
Порядок действий следующий:
- Добавляете файл шрифта в проект, открываете Window → TextMeshPro → Font Asset Creator и перетаскиваете шрифт в поле Source Font File
- Теперь можно выбрать набор символов, для этого есть меню Character Set
Всё что идёт до Custom Range – это разновидности ASCII и символы. После, это опции где можно выбирать откуда брать символы: из файла, просто перечислить в поле, указать промежуток, последовательность и т.д.
- Выберем Unicode Range (HEX) и укажем, например 0020-007F – это базовые латинские символы, ренжи можно указывать через запятую
- Теперь можно нажать Generate Font Atlas
- Сохраняете с нужным именем
Окно после настроек и генерации шрифта, должно выглядеть как-то так:
Что тут у нас:
- из указанного ренжа было добавлено 95 из 96 символов, не добавился 007F – ␡, его нет в этом шрифте
- в результате для атласа 512×512 получился Point Size = 70, потому что в настройках было указано Auto Sizing
- можно указать размер шрифта вручную, но тогда надо следить чтобы всё влезло в атлас и при необходимости увеличить размер атласа или 👇
- также, можно разбить свои шрифты на несколько ассетов, например, сделать один (базовый) с часто используемыми символами, второй с математическими знаками, третий с кириллицей и т.д. При необходимости TMP сам будет использовать нужный атлас. Для этого к базовому ассету нужно добавить поддержку остальных, также как делали с эмоджи:
Разные unicode ranges для создания своих шрифтов можно подглядеть тут.
Отрисовка разных шрифтов и размеров это тоже нагрузка, старайтесь использовать только то что необходимо. Про оптимизацию есть отдельная заметка.
Нет комментариев