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

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

Prefabs

3DTextPrefab

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

UITextPrefab

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

Fonts

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

Важно!

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

Importing Segoe UI font file

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

    Assigning font texture

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

    Assigning shader

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

    Assigning font file and material

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

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

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

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

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

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

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

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

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

Font size with scaling factors

Text3DSelawik.mat

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

Default Font material vs 3DTextSegoeUI material

Text3DShader.shader

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