Заготовка текста — 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 с префабом текста.
Назначьте текстуру шрифта материалу 3DTextSegoeUI.mat.
В материале 3DTextSegoeUI.mat выберите шейдер Custom/3DTextShader.shader.
Назначьте шрифт 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
Text3DShader.shader
Шейдер для 3DTextPrefab с поддержкой окклюзии.