Поделиться через


Заготовка текста — MRTK2

Эти заготовки оптимизированы для качества отрисовки в Windows Mixed Reality. Дополнительные сведения см. в руководстве Текст в Unity в Центре разработки для Microsoft Windows.

Prefabs

3DTextPrefab

Заготовка трехмерной сетки текста (Assets/MRTK/SDK/StandardAssets/Prefabs/Text) с оптимизированным коэффициентом масштабирования на расстоянии 2 метра. (Ознакомьтесь с инструкциями ниже)

UITextPrefab

Заготовка сетки текста пользовательского интерфейса (Assets/MRTK/SDK/StandardAssets/Prefabs/Text) с оптимизированным коэффициентом масштабирования на расстоянии 2 метра. (Ознакомьтесь с инструкциями ниже)

Шрифты

Шрифты с открытым кодом (Assets/MRTK/Core/StandardAssets/Fonts), включенные в набор средств Смешанная реальность.

Важно!

В заготовке текста используется шрифт открытый код Selawik. Чтобы использовать префаб текста с другим шрифтом, импортируйте файл шрифта и следуйте приведенным ниже инструкциям. В приведенном ниже примере показано, как использовать шрифт Segoe UI с префабом текста.

Импорт файла шрифта segoe UI

  1. Назначьте текстуру шрифта материалу 3DTextSegoeUI.mat.

    Назначение текстуры шрифта

  2. В материале 3DTextSegoeUI.mat выберите шейдер Custom/3DTextShader.shader.

    Назначение шейдера

  3. Назначьте шрифт Segoe UI и материал 3DTextSegoeUI текстовым компонентам в заготовках.

    Назначение файла шрифта и материала

Работа со шрифтами в Unity

При добавлении нового трехмерного textMesh в сцену в Unity есть две проблемы, которые визуально очевидны. Один, шрифт выглядит очень большим, а два, шрифт выглядит очень размытым. Также интересно отметить, что значение размера шрифта по умолчанию в инспекторе равно нулю. При замене этого нулевого значения на 13 разница в размере не будет отображаться, так как значение 13 фактически является значением по умолчанию.

В Unity предполагается, что размер всех новых элементов, добавленных в сцену, равен 1 единице Unity или масштабу преобразования 100 %, что означает примерно 1 метр на HoloLens. В случае с шрифтами ограничивающий прямоугольник для трехмерной ячейки TextMesh по умолчанию имеет высоту около 1 метра.

Масштаб и размеры шрифта

Большинство визуальных дизайнеров используют точки для определения размеров шрифтов в реальном мире, а также их программ проектирования. Есть около 2835 (2834,64566639962) точек в 1 метре. На основе преобразования системы точек в 1 метр и размера шрифта TextMesh по умолчанию 13 в Unity простая математика, разделенная на 2835, равна 0,0046 (0,004586111116, чтобы быть точным), обеспечивает хорошую стандартную шкалу для начала, хотя некоторые могут захотеть округить до 0,005.

В любом случае масштабирование объекта Text или контейнера до этих значений позволит не только преобразовать размер шрифта 1:1 из программы разработки, но и обеспечит стандарт для поддержания согласованности во всем приложении или игре.

Текст пользовательского интерфейса

При добавлении элемента Text на основе пользовательского интерфейса или холста в сцену разница в размерах еще больше. Разница между двумя размерами составляет около 1000 %, что приведет к тому, что коэффициент масштабирования для компонентов текста на основе пользовательского интерфейса составляет 0,00046 (0,000458611116, если быть точным) или 0,0005 для округленного значения.

Отказ от ответственности. Значение по умолчанию любого шрифта может быть вызвано размером текстуры этого шрифта или способом импорта шрифта в Unity. Эти тесты были выполнены на основе шрифта Arial по умолчанию в Unity, а также другого импортированного шрифта.

Размер шрифта с коэффициентами масштабирования

Text3DSelawik.mat

Материал для 3DTextPrefab с поддержкой окклюзии. Требуется 3DTextShader.shader

Материал шрифта по умолчанию и материал 3DTextSegoeUI

Text3DShader.shader

Шейдер для 3DTextPrefab с поддержкой окклюзии.