Unity 6.3
0 онлайн 85 гостей 3 в системе
Вход

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

Шрифтовые ресурсы действуют как контейнеры для шрифтов. С помощью шрифтов вы можете импортировать шрифты в ваши проекты и создавать вариации шрифта из одного файла, не изменяя оригинальный шрифт. Еще одна причина для создания шрифтовых ресурсов — это работа с языками с массивными наборами символов, такими как китайский. Вы можете включать только нужные символы, а не полный набор символов.

Вы можете конвертировать TrueType (.ttf), OpenType (.otf), или TrueType Сборник (.ttc) шрифтов в шрифтовые ассеты. Шрифтовый ассет включает в себя файл текстуры шрифтов атласа, который содержит все символы. Режимы заполнения атласа и режимы отображения на выбор при создании шрифта.

Атлас демографических моделей

TextCore поддерживает Статический, Динамическийи Динамический OS режимы населения атласа.

Статические шрифты

Статические шрифтовые ассеты запекают символы в текстуру атласа при преобразовании. Используйте их для заранее известного текста в проекте — подписей и заголовков разделов. При создании статического шрифтового ассета атлас шрифта по умолчанию пуст: его нужно сформировать вручную и включить туда все необходимые проекту символы. Файл-источник шрифта в сборку включать не требуется, поэтому такой вариант быстр и экономичен.

См. инструкции по созданию Статического шрифта.

Динамические шрифты

Динамические шрифтовые ассеты начинаются с пустой текстуры атласа. Динамические шрифтовые ассеты ищут символы в исходном файле шрифта и добавляют символы динамически, когда вы используете их в UI. Используйте динамические шрифтовые ассеты для неизвестного текста в вашем проекте, например, любых текстовых полей ввода. Динамические шрифтовые ассеты гибки, но они имеют дополнительную нагрузку на производительность, поскольку сборка проекта требует включения всех исходных файлов шрифта.

См. инструкции по создание динамического шрифта.

Динамический шрифт OS

Динамические шрифты OS являются динамическими шрифтами, которые ссылаются на файл шрифта в операционной системе, а не на файл исходного шрифта. По сравнению с динамическими шрифтами, динамические шрифты OS имеют меньшую нагрузку на память. Создание проекта не требует включения исходных файлов шрифта. Убедитесь, что шрифты находятся на операционной системе целевой платформы. Динамические шрифты OS являются отличными кандидатами для резервных шрифтовых ассетов.

Чтобы создать динамический шрифт OS, импортируйте шрифт из операционной системы в свой проект и используйте его для создания динамического шрифта и изменения Atlas Population Mode на Dynamic OS.

Режимы отображения Атласа

TextCore поддерживает режимы отображения атласа для битмапа и поля расстояния с знаком (SDF).

Растовые шрифты

Битмапное рендеринг создает шрифтовые ассеты, которые идеально выстраивают каждый пиксель шрифта со сценой и пикселами GUI. Используйте следующие режимы рендеринга для пиксельной графики:

  • SMOOTH или SMOOTH_HINTED для рендеринга текста в растровое изображение с выравниванием. SMOOTH_HINTED для выравнивания пикселей символов с пикселами текстуры для более четкого изображения.
  • RASTER или RASTER_HINTE для рендеринга текста в невыравниваемую растровую картинку. RASTER_HINTE выстраивает пиксели символов с пикселами текстуры для более четкого изображения.
  • COLOR или COLOR_HINTED для рендеринга текста в цветное изображение. COLOR_HINTED выстраивает пиксели символов с пикселями текстуры для более четкого изображения.

Шрифты SDF

Отображение SDF создает шрифты, которые выглядят резко при преобразовании или увеличении. Отображение SDF поддерживает такие эффекты, как контуры и падающая тень.

В отличие от текстур растровых шрифтов, шрифтовые ассеты SDF содержат информацию о расстоянии контуров. В атласах шрифтов эта информация выглядит как градиенты серого цвета, которые проходят от середины каждого глифа до точки за его краем. Средняя точка градиента соответствует краю глифа.

На изображениях ниже показаны битмапные и SDF шрифты и отображаемый ими текст. Битмапные шрифты создают текст, края которого более или менее зубчатые и размытые, в зависимости от того, на каком расстоянии текст находится от камеры и как он преобразован и искажен. Шрифт SDF создает текст с гладкими краями независимо от расстояния от камеры.

Шрифт битмапа, текстура атласа и результат рендеринга
Шрифт битмапа, текстура атласа и результат рендеринга
Сглаженное растровое изображение, текстура атласа и рендируемый результат
Сглаженное растровое изображение, текстура атласа и рендируемый результат
Шрифт SDF, текстура атласа и рендируемый результат
Шрифт SDF, текстура атласа и рендируемый результат

Используйте следующий режим отображения для шрифтов SDF:

  • SDFAA: Используйте этот режим для создания атласов шрифтов для большинства случаев использования, за исключением отображения больших текстов, таких как заголовки, размер которых превышает 90 пунктов на экране с большим контуром. SDFAA является режимом по умолчанию для динамических или динамических шрифтовых ассетов OS для быстрого создания. SDFAA является более быстрым, но менее точным режимом создания SDF.
  • SDFAA_HINTED Используйте этот режим для выравнивания пикселей символов с пикселами текстуры для получения более четкого результата.
  • SDF32: Режим по умолчанию для статических шрифтов. Используйте этот режим для шрифтов со сложными или маленькими символами. Это более медленный и более точный режим генерации SDF с 32-кратным пересемплированием.
  • SDF16: Используйте этот режим для статических шрифтовых ассетов и в основном больших текстов, таких как заголовки, которые имеют размер 72 пункта или больше. Это медленный и более точный режим генерации SDF с 16-кратной передискретизацией.
  • SDF8: Используйте этот режим для более медленного и более точного генерирования SDF с 8-кратной передискретизацией.
  • SDF: Используйте этот режим для более медленного и более точного генерирования SDF без пересемплинга.

Вариант шрифта

Если вы хотите внести изменения только в метрики шрифта, вместо создания нового шрифта создайте вариант шрифта, основанный на другом шрифте. Вариант шрифта может иметь стилизацию, отличающую его от оригинального шрифта, не потребляя дополнительного пространства для текстур. Вариант хранит свои собственные данные Face Info, Character, Glyph и Adjustment Pair, но все равно ссылается на оригинальный атлас.

Чтобы создать вариант шрифта, щелкните правой кнопкой мыши шрифт и выберите Создать > Текст> Вариант шрифта.

Заполнение

Символы в текстуре шрифта нуждаются в прокладке между собой, чтобы их можно было отображать отдельно. Эта прокладка указывается в пикселях. Прокладка также создает пространство для градиента SDF. Чем больше прокладка, тем плавнее переход, что позволяет получать более качественное отображение и более крупные эффекты, такие как толстые контуры. Используйте прокладку 5 для текстуры 512x512. Хорошим правилом является соотношение выборки к прокладке 1:10.

Включить текстуры Multi Atlas для больших текстур

Для большинства шрифтов используйте разрешение текстуры 512x512, если вы включаете все символы ASCII. Чтобы поддерживать тысячи символов, используйте большие текстуры и включите Multi Atlas Textures в окне Inspector ассета шрифта. Это автоматически создает новые текстуры того же размера, когда основная текстура заполнена.

Вы также можете включить Multi Atlas Textures, если вы разрабатываете для мобильных устройств, где навязанный максимальный размер текстуры не позволяет поместить целый набор глифов в один атлас достаточного качества.

Использование шрифта

Чтобы использовать шрифт, в UI Builder выберите шрифт из Font Asset в окне Inspector.

Примечание: Поле Фон предназначено для обратной совместимости. Если вы хотите использовать шрифт из списка Фон для ваших устаревших проектов, вы должны выбрать Нет из Font Asset. В противном случае шрифт, выбранный вами из Фон, не будет действовать.

Вы можете применить шрифт к текстовому элементу в USS с помощью следующего синтаксиса:

-unity-font-definition: <resource> | <url>

Например:

Label {
-unity-font-definition: url("/Assets/UI Toolkit/Resources/Fonts & Materials/LiberationSans SDF.asset");
}

Дополнительные сведения см. в USS текстовых свойствах.

Передовая практика

Таким образом, при создании элемента шрифта следует учитывать следующие моменты:

  • Текст ввода пользователя: Используйте Динамический или Динамический OS режим популяции и SDFAA режим для быстрого генерирования. Вам может понадобиться добавить резервные варианты для локализации.
  • Общие метки: Используйте режим статичного населения и режим SDF16 с меньшим размером точки выборки.
  • Титулы: Используйте режим Статическое население и SDF32 режим с более высоким размером точки отбора проб.
  • Pixel Art: Используйте любой из режимов отображения растровых шрифтов.
  • Заполнение: Использовать коэффициент отбора проб к прокладочному слою, равный 1:10.
  • Включите Multi Atlas Textures для больших текстур.

Дополнительные ресурсы