Пример для шрифта Russo One.
Оглавление
Шаг 1: Подготовка файлов
- Скачанный архив с Google Fonts содержит:
RussoOne-Regular.ttf(основной файл)- Возможно другие начертания (обычно только Regular)
- Создайте структуру папок:
Assets/
├── Fonts/
│ ├── RussoOne/
│ │ ├── RussoOne-Regular.ttf
│ │ └── Materials/
├── TextMesh Pro/
│ └── Resources/🛠 Шаг 2: Создание TextMeshPro Font Asset
A. Настройки для WebGL:
- Откройте Font Asset Creator:
- Window → TextMeshPro → Font Asset Creator
- Настройте параметры для WebGL:
| Параметр | Значение | Объяснение |
|---|---|---|
| Source Font File | RussoOne-Regular.ttf | Выберите ваш файл |
| Sampling Point Size | 24-32 | Чем меньше, тем легче атлас |
| Padding | 5 | Для WebGL достаточно |
| Packing Method | Optimum | Оптимальное заполнение |
| Atlas Resolution | 512×512 | Для WebGL лучше 512 или 1024 |
| Render Mode | Smooth | Для не-пиксельных шрифтов |
| Character Set | Custom Set | Оптимизация размера |
- Настройте Custom Character Set для игры:
- Вставьте в поле «Custom Character List»:
АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ
абвгдеёжзийклмнопрстуфхцчшщъыьэюя
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
0123456789
.,!?-+()[]{}:;'"@#$%&*<>/=_
Для экономии места можно ограничить только английскими буквами, если игра не на русском.
- Нажмите «Generate Font Atlas»
- Сохраните как:
Assets/Fonts/RussoOne/RussoOne SDF.asset
B. Создание Material для шрифта:
- Создайте Material:
- Right-click в папке RussoOne → Create → Material
- Назовите
RussoOne SDF Material
- Настройте Shader:
- Shader: TextMeshPro/Distance Field
- Настройте параметры:
Face:
- Color: #FFFFFFFF
- Dilate: 0.5
- Softness: 0.1
Outline:
- Color: #000000AA
- Thickness: 0.15
- Softness: 0.1
Underlay:
- Отключить (увеличивает draw calls)
Glow:
- Отключить (для производительности)- Привяжите Material к Font Asset:
- Откройте RussoOne SDF.asset
- В Material Preset перетащите созданный материал
Шаг 3: Оптимизация для WebGL
A. Оптимизация Font Asset:
- Откройте RussoOne SDF.asset в инспекторе
- Настройте атлас:
General Settings:
- Atlas Population Mode: Static
- Atlas Render Mode: RasterHinted
- Atlas Width/Height: 512 (или 1024 если много символов)
Font Settings:
- Font Scaling Mode: Match SDF Size
- SDF Scale: 8-16 (меньше = легче, но хуже качество)
- Normal Style: 0.5
- Bold Style: 1.0- Уберите ненужные символы:
- В разделе «Glyph Table» удалите ненужные символы
- Оставьте только используемые в игре
B. Создание Fallback Font Asset (важно для WebGL):
- Создайте упрощенную версию:
- Duplicate RussoOne SDF.asset → назовите
RussoOne SDF Fallback - Уменьшите SDF Scale до 4-8
- Уменьшите атлас до 256×256
- Duplicate RussoOne SDF.asset → назовите
- Настройте Fallback List в TMP Settings:
- Window → TextMeshPro → Settings
- В разделе «Fallback Font Assets» добавьте:
- Основной шрифт (RussoOne SDF)
- Fallback шрифт (упрощенный)
- LiberationSans SDF (стандартный, уже есть)
Шаг 4: Применение в игре
A. Настройка UI элементов:
- Для всех TextMeshPro компонентов:
- Font Asset: RussoOne SDF
- Material Preset: RussoOne SDF Material
- Font Style: Normal (или Bold если нужно)
- Оптимальные настройки для разных элементов:
Заголовки (Game Paused):
Font Size: 48-64 Font Style: Normal Character Spacing: 0 Line Spacing: 100% Alignment: Center
Характеристики в меню паузы:
Проверь свои знания в нашем бесплатном ТЕСТЕ по Unity! Узнай, насколько хорошо ты его знаешь!
Font Size: 32 Font Style: Normal Character Spacing: 2 Line Spacing: 120%
Кнопки:
Font Size: 28-32 Font Style: Normal Outline: 0.15 толщина, черный цвет
B. Создание пресетов стилей:
- Создайте TMP Style Sheet:
- Right-click → Create → TextMeshPro → Style Sheet
- Назовите
RussoOneStyles
- Добавьте стили:
Styles:
- Title (Font Size: 64, Bold, Center)
- Subtitle (Font Size: 36, Center)
- Body (Font Size: 28, Left)
- Button (Font Size: 32, Bold, Center, Outline)
- Stats (Font Size: 32, Bold, Left)
Шаг 5: Оптимизация сборки WebGL
A. Настройки Player Settings для шрифтов:
- Откройте: Edit → Project Settings → Player → WebGL Settings
- Настройте:
Publishing Settings:
- Compression Format: Brotli (лучшее сжатие для шрифтов)
- Data Caching: ✓ Enabled
Strip Engine Code:
- Strip Byte Code: ✓ Enabled
- Managed Stripping Level: HighB. Уменьшение размера билда:
- Удалите неиспользуемые начертания:
- Если у вас только Regular, удалите другие файлы шрифтов
- Оптимизируйте атласы:
- Убедитесь все символы помещаются в 512×512
- Если нет — увеличьте до 1024×1024, но не больше
- Используйте Asset Bundles для шрифтов (опционально): Можно вынести шрифт в отдельный бандл и загружать асинхронно при старте игры
C. Проверка производительности:
- Включите Frame Debugger:
- Window → Analysis → Frame Debugger
- Проверьте что шрифт не вызывает лишних draw calls
- Оптимизация батчинга:
- Используйте одинаковые материалы для текста
- Избегайте частого изменения цвета/прозрачности






