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