Текст в UnityText in Unity

Текст является одним из наиболее важных компонентов в holographic приложениях.Text is one of the most important components in holographic apps. Для отображения текста в Unity можно использовать три типа текстовых компонентов: текст пользовательского интерфейса, сетка трехмерных текстов и сетка текста Pro.To display text in Unity, there are three types of text components you can use—UI Text, 3D Text Mesh, and Text Mesh Pro. По умолчанию текст пользовательского интерфейса и сетка трехмерного текста отображаются нечеткими и слишком велики.By default, UI Text and 3D Text Mesh appear blurry and are too large. Изменение нескольких переменных приводит к увеличению текста высокого качества с управляемым размером в HoloLens.Changing a few variables results in sharper, higher-quality text with a manageable size in HoloLens. Вы можете улучшить качество рендеринга, применяя коэффициент масштабирования для получения правильных измерений при использовании компонентов текста пользовательского интерфейса и сетки трехмерного текста.You can achieve better rendering quality by applying a scaling factor to get proper dimensions when using the UI Text and 3D Text Mesh components.

Как получить яркий и привлекательный текстHow to get sharp and beautiful text
Размытый текст по умолчанию в UnityBlurry default text in Unity

Работа с трехмерным текстом Unity (сетка текста) и текстом пользовательского интерфейсаWorking with Unity's 3D Text (Text Mesh) and UI Text

Unity предполагает, что все новые элементы, добавленные в сцену, имеют одну единицу Unity в размере или 100% преобразования.Unity assumes all new elements added to a scene are one Unity Unit in size, or 100% transform scale. Одна единица Unity преобразуется в около 1 счетчика на HoloLens.One Unity unit translates to about 1 meter on HoloLens. Для шрифтов ограничивающий прямоугольник для 3D-Текстмеш по умолчанию имеет размер около 1 индикатора высоты.For fonts, the bounding box for a 3D TextMesh comes in by default at about 1 meter in height.

Работа со шрифтами в UnityWorking with Fonts in Unity
Объемный текст Unity по умолчанию (сетка текста) занимает одну единицу Unity, которая является 1 счетчиком.Default Unity 3D Text (Text Mesh) occupies one Unity Unit, which is 1 meter


Большинство визуальных конструкторов используют точки для определения размеров шрифтов в реальном мире.Most visual designers use points to define font sizes in the real world. Имеется около 2835 (2, 834.645666399962) точек в единицах измерения.There are about 2835 (2,834.645666399962) points in 1 meter. На основе преобразования системы точек в 1 измеритель и размер шрифта сетки по умолчанию Unity, равный 13, простые математические функции 13 делятся на 2835 равными 0,0046 (0.004586111116), что обеспечивает хороший Стандартный масштаб для начала работы (некоторые могут быть округлены до 0,005).Based on the point system conversion to 1 meter and Unity's default Text Mesh font size of 13, the simple math of 13 divided by 2835 equals 0.0046 (0.004586111116 to be exact) which provides a good standard scale to start with (some may wish to round to 0.005). Масштабирование текстового объекта или контейнера до этих значений не только приводит к 1:1 преобразованию размеров шрифта в программе-конструкторе, но также предоставляет стандарт, позволяющий поддерживать согласованность в процессе работы.Scaling the text object or container to these values will not only allow for the 1:1 conversion of font sizes in a design program, but also provides a standard so you can maintain consistency throughout your experience.

Масштабирование значений для трехмерного текста Unity и текста пользовательского интерфейсаScaling values for the Unity 3D Text and UI Text
Масштабирование значений для трехмерного текста Unity и текста пользовательского интерфейсаScaling values for the Unity 3D Text and UI Text


Трехмерная сетка Unity с оптимизированными значениямиUnity 3D Text Mesh with optimized values
Трехмерная сетка Unity с оптимизированными значениямиUnity 3D Text Mesh with optimized values


При добавлении элемента текста на основе пользовательского интерфейса или холста в сцену по-прежнему увеличивается размер четности.When adding a UI or canvas-based text element to a scene, the size disparity is greater still. Разница в двух размерах составляет примерно 1000%, что приведет к увеличению коэффициента масштабирования для текстовых компонентов на основе пользовательского интерфейса в 0,00046 (0.0004586111116) или 0,0005 для округленного значения.The differences in the two sizes are about 1000%, which would bring the scale factor for UI-based text components to 0.00046 (0.0004586111116 to be exact) or 0.0005 for the rounded value.

Текст пользовательского интерфейса Unity с оптимизированными значениямиUnity UI Text with optimized values
Текст пользовательского интерфейса Unity с оптимизированными значениямиUnity UI Text with optimized values


Примечание

Значение по умолчанию любого шрифта может зависеть от размера текстуры этого шрифта или от того, как шрифт был импортирован в Unity.The default value of any font may be affected by the texture size of that font or how the font was imported into Unity. Эти тесты были выполнены на основе шрифта Arial по умолчанию в Unity, а также одного другого импортированного шрифта.These tests were performed based on the default Arial font in Unity, as well as one other imported font.

Работа с сеткой текста ProWorking with Text Mesh Pro

С помощью сетки текста Unity Pro можно защитить качество отображения текста.With Unity's Text Mesh Pro, you can secure the text rendering quality. Он поддерживает четкие текстовые контуры независимо от расстояния с помощью методики поля со знаками на расстоянии со знаком (SDF) .It supports crisp text outlines regardless of the distance using the Signed Distance Field (SDF) technique. Используя тот же метод вычисления, который мы использовали выше для трехмерной сетки текста и текста пользовательского интерфейса, можно найти правильные значения масштабирования для использования с обычными типографскими точками.Using the same calculation method that we used above for the 3D Text Mesh and UI Text, we can find the proper scaling values to use with conventional typographic points. Так как шрифт трехмерной сетки объемом по умолчанию (36) имеет размер границы, равный 2,5 единицам Unity (2,5 m), для получения размера точки можно использовать значение масштабирования 0,005.Since the default 3D Text Mesh Pro font with the size of 36 has a bounding size of 2.5 Unity units (2.5 m), we can use a scaling value of 0.005 to get the point size. Элемент "сетка текста" в меню пользовательского интерфейса имеет ограничивающий размер по умолчанию (25 единиц Unity) (25 м).The Text Mesh Pro under the UI menu has a default bounding size of 25 Unity units (25 m). Это дает нам 0,0005 значение масштабирования.This gives us 0.0005 for the scaling value.

Масштабирование значений для трехмерного текста и пользовательского интерфейса UnityScaling values for the Unity 3D Text and UI
Масштабирование значений для трехмерного текста и пользовательского интерфейса UnityScaling values for the Unity 3D Text and UI

Как можно догадаться, размеры типов, используемые на ПК или планшетном устройстве (обычно от 12 – отступ), выглядят небольшими на расстоянии 2 метра.As you can expect, type sizes that we use on a PC or a tablet device (typically between 12–32pt) look small at a distance of 2 meters. Это зависит от характеристик каждого шрифта, но в общем случае рекомендуемый минимальный угол просмотра и высота шрифта для читаемости находятся вокруг 0,35 °-0,4 °/12.21-13.97 мм на основе наших исследований исследования пользователей.It depends on the characteristics of each font, but in general the recommended minimum viewing angle and the font height for legibility are around 0.35°-0.4°/12.21-13.97 mm based on our user research studies. Это примерно 35-40 пт с коэффициентом масштабирования, представленным выше.It's about 35-40 pt with the scaling factor introduced above.

Для близкого взаимодействия в 0,45 м (45 cm) минимальный угол просмотра и высоту шрифта — 0,4 °-0,5 °/3,14 – 3,9 мм.For the near interaction at 0.45 m (45 cm), the minimum legible font's viewing angle and the height are 0.4°-0.5° / 3.14–3.9mm. Это примерно 9-12 пт с коэффициентом масштабирования, представленным выше.It's about 9-12 pt with the scaling factor introduced above.

Содержимое диапазона практически и дальнего взаимодействия в пределах диапазона практически и дальнего взаимодействияNear and far interaction range Content at near and far interaction range

Минимальный размер неудобочитаемого шрифтаThe minimum legible font size

расстояние;Distance Угол просмотраViewing angle Высота текстаText height Размер шрифтаFont size
45 cm (расстояние прямого манипулирования)45 cm (direct manipulation distance) 0,4 ° — 0,5 °0.4°-0.5° 3,14 — 3,9 мм3.14–3.9mm 8.9 — 11.13 PT8.9–11.13pt
2 м2 m 0,35 °-0,4 °0.35°-0.4° 12.21 – 13.97 мм12.21–13.97mm 34.63-39.58 PT34.63-39.58 pt

Удобно, чтобы размер шрифта разборчивоThe comfortably legible font size

расстояние;Distance Угол просмотраViewing angle Высота текстаText height Размер шрифтаFont size
45 cm (расстояние прямого манипулирования)45 cm (direct manipulation distance) 0.65 °-0,8 °0.65°-0.8° 5.1 – 6.3 мм5.1-6.3 mm 14.47-17.8 PT14.47-17.8 pt
2 м2 m 0,6 °-0,75 °0.6°-0.75° 20,9-26,2 мм20.9-26.2 mm 59.4-74.2 pt59.4-74.2 pt

Segoe UI (шрифт по умолчанию для Windows) хорошо работает в большинстве случаев.Segoe UI (the default font for Windows) works well in most cases. Однако старайтесь не использовать светло-или светлое семейство шрифтов в небольшом размере, так как тонкие вертикальные штрихи будут вибрировало, и это приведет к ухудшению читаемости.However, avoid using light or semi light font families in small size since thin vertical strokes will vibrate and it will degrade the legibility. Современные шрифты с достаточной толщиной обводки хорошо работают.Modern fonts with enough stroke thickness work well. Например, Helvetica и Arial выглядят прекрасные и являются выразительными в HoloLens с обычными или полужирными плотностьми.For example, Helvetica and Arial look gorgeous and are legible in HoloLens with regular or bold weights.

Просмотр угла просмотра расстояния, угла и высоты текстаViewing Angle Viewing distance, angle, and text height

Текст с набором средств Mixed Reality версии 2Text with Mixed Reality Toolkit v2

Качество отрисовки текста с правильным измерениемSharp text rendering quality with proper dimension

На основе этих коэффициентов масштабирования мы создали текст Prefabs с текстом пользовательского интерфейса и сеткой трехмерного текста.Based on these scaling factors, we have created text prefabs with UI Text and 3D Text Mesh. Разработчики могут использовать эти Prefabs, чтобы получить четкий текст и согласовать размер шрифта.Developers can use these prefabs to get sharp text and consistent font size.

Качество отрисовки текста с правильным измерениемSharp text rendering quality with proper dimension
Качество отрисовки текста с правильным измерениемSharp text rendering quality with proper dimension

Шейдер с поддержкой перекрытияShader with occlusion support

Материал по шрифтам Unity по умолчанию не поддерживает перекрытия.Unity's default font material doesn't support occlusion. По этой причине текст позади объектов по умолчанию будет отображаться.Because of this, you'll see the text behind the objects by default. Мы включили простой шейдер, который поддерживает перекрытия.We've included a simple shader that supports the occlusion. На рисунке ниже показан текст со стандартным материалом шрифта (слева) и текстом с правильным перекрытия (справа).The image below shows the text with default font material (left) and the text with proper occlusion (right).

Шейдер с поддержкой перекрытияShader with occlusion support
Шейдер с поддержкой перекрытияShader with occlusion support

Следующий этап разработкиNext Development Checkpoint

Если вы пойдете из пути разработки Unity, мы собрались, что вы в состоянии изучить стандартные блоки МРТК Core.If you're following the Unity development journey we've laid out, you're in the midst of exploring the MRTK core building blocks. Отсюда можно перейти к следующему стандартному блоку:From here, you can continue to the next building block:

Или перейдите к возможностям и API платформы смешанной реальности:Or jump to Mixed Reality platform capabilities and APIs:

Вы можете в любой момент вернуться к этапам разработки для Unity.You can always go back to the Unity development checkpoints at any time.

См. также разделSee also