Texto no UnityText in Unity

O texto é um dos componentes mais importantes nos aplicativos Holographic.Text is one of the most important components in holographic apps. Para exibir texto no Unity, há três tipos de componentes de texto que você pode usar — texto da interface do usuário, malha de texto 3D e malha de texto 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. Por padrão, o texto da interface do usuário e a malha de texto 3D aparecem borrados e são muito grandes.By default, UI Text and 3D Text Mesh appear blurry and are too big. Você precisa ajustar algumas variáveis para obter um texto nítido e de alta qualidade que tenha um tamanho gerenciável no HoloLens.You need to tweak a few variables to get sharp, high-quality text that has a manageable size in HoloLens. Ao aplicar um fator de dimensionamento para obter dimensões adequadas ao usar o texto da interface do usuário e componentes de malha de texto 3D, você pode obter uma melhor qualidade de renderização.By applying a scaling factor to get proper dimensions when using the UI Text and 3D Text Mesh components, you can achieve better rendering quality.

Como obter texto nítido e bonitoHow to get sharp and beautiful text
Texto padrão borrado no UnityBlurry default text in Unity

Trabalhando com texto 3D do Unity (malha de texto) e texto da interface do usuárioWorking with Unity's 3D Text (Text Mesh) and UI Text

O Unity pressupõe que todos os novos elementos adicionados a uma cena tenham uma unidade Unity de tamanho ou uma escala de transformação de 100%, o que traduz em cerca de 1 metro no HoloLens.Unity assumes that all new elements added to a scene are 1 Unity Unit in size, or 100% transform scale, which translates to about 1 meter on HoloLens. No caso de fontes, a caixa delimitadora para um textmesh 3D entra por padrão em aproximadamente 1 metro de altura.In the case of fonts, the bounding box for a 3D TextMesh comes in by default at about 1 meter in height.

Trabalhando com fontes no UnityWorking with Fonts in Unity
O texto 3D de Unity (malha de texto) padrão ocupa uma unidade Unity que é de 1 metroDefault Unity 3D Text (Text Mesh) occupies 1 Unity Unit which is 1 meter


A maioria dos designers visuais usa pontos para definir tamanhos de fonte no mundo real.Most visual designers use points to define font sizes in the real world. Há cerca de 2835 pontos (2, 834.645666399962) em 1 metro.There are about 2835 (2,834.645666399962) points in 1 meter. Com base na conversão de sistema de ponto para 1 medidor e tamanho de fonte de malha de texto padrão de Unity de 13, a matemática simples de 13 dividido por 2835 é igual a 0, 46 (0.004586111116 para ser exato), que fornece uma boa escala padrão para começar (algumas podem ser arredondadas para 0, 5).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). Dimensionar o objeto de texto ou o contêiner para esses valores não só permitirá a conversão 1:1 de tamanhos de fonte em um programa de design, mas também fornecerá um padrão para que você possa manter a consistência em toda a sua experiência.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.

Malha de texto 3D do Unity com tamanhos de fonte diferentesUnity 3D Text Mesh with different font sizes
Dimensionamento de valores para texto 3D do Unity e texto da interface do usuárioScaling values for the Unity 3D Text and UI Text


Malha de texto 3D do Unity com tamanhos de fonte diferentesUnity 3D Text Mesh with different font sizes
Malha de texto 3D do Unity com valores otimizadosUnity 3D Text Mesh with optimized values


Ao adicionar um elemento de texto baseado na interface do usuário ou tela a uma cena, o tamanho da disparidade ainda é maior.When adding a UI or canvas based text element to a scene, the size disparity is greater still. As diferenças nos dois tamanhos são cerca de 1000%, o que levaria o fator de escala para componentes de texto baseados na interface do usuário a 0, 46 (0.0004586111116 para ser exato) ou 0, 5 para o valor arredondado.The differences in the two sizes is 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.

Texto da interface do usuário do Unity com diferentes pixels dinâmicos por valores de unidadeUnity UI Text with different dynamic pixels per unit values
Texto da interface do usuário do Unity com valores otimizadosUnity UI Text with optimized values


Observação

O valor padrão de qualquer fonte pode ser afetado pelo tamanho da textura dessa fonte ou como a fonte foi importada para o 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. Esses testes foram executados com base na fonte Arial padrão no Unity, bem como uma outra fonte importada.These tests were performed based on the default Arial font in Unity, as well as one other imported font.

Trabalhando com a malha de texto proWorking with Text Mesh Pro

Com o Text mesh pro da Unity, você pode proteger a qualidade de renderização do texto.With Unity's Text Mesh Pro, you can secure the text rendering quality. Ele dá suporte a contornos de texto nítidos, independentemente da distância usando a técnica de SDF (conexão de campo de distância) assinada .It supports crisp text outlines regardless of the distance using the Signed Distance Field (SDF) technique. Usando o mesmo método de cálculo que usamos acima para a malha de texto 3D e o texto da interface do usuário, podemos encontrar os valores de dimensionamento adequados a serem usados com pontos tipográficos convencionais.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. Como a fonte pro de malha de texto 3D padrão com o tamanho de 36 tem um tamanho delimitador de 2,5 unidades de Unity (2,5 m), podemos usar um valor de dimensionamento de 0, 5 para obter o tamanho do ponto.Since the default 3D Text Mesh Pro font with the size of 36 has a bounding size of 2.5 Unity units (2.5m), we can use a scaling value of 0.005 to get the point size. O Text mesh pro no menu da interface do usuário tem um tamanho delimitador padrão de 25 unidades de Unity (25m).The Text Mesh Pro under the UI menu has a default bounding size of 25 Unity units (25m). Isso nos dá 0, 5 para o valor de dimensionamento.This gives us 0.0005 for the scaling value.

Malha de texto 3D do Unity com tamanhos de fonte diferentesUnity 3D Text Mesh with different font sizes
Dimensionamento de valores para texto 3D do Unity e texto da interface do usuárioScaling values for the Unity 3D Text and UI Text

Como você pode esperar, os tamanhos de tipo que usamos em um PC ou um dispositivo Tablet (normalmente entre 12 e 32pt) parecem muito pequenos em uma distância de 2 metros.As you can expect, type sizes that we use on a PC or a tablet device (typically between 12–32pt) look quite small at a distance of 2 meters. Depende das características de cada fonte, mas, em geral, o ângulo de exibição mínimo recomendado e a altura da fonte para legibilidade estão em torno de 0.35 °-0.4 °/12.21-13.97mm, com base em nossos estudos de pesquisa de usuários.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.97mm based on our user research studies. É cerca de 35 40pt com o fator de dimensionamento apresentado acima.It is about 35-40pt with the scaling factor introduced above.

Para a interação próxima no 0.45 m (45cm), o ângulo de exibição da fonte mínimo legível e a altura são 0.4 °-0,5 °/3.14 – 3.9 mm.For the near interaction at 0.45m (45cm), the minimum legible font's viewing angle and the height are 0.4°-0.5° / 3.14–3.9mm. É cerca de 9 12 pt com o fator de dimensionamento apresentado acima.It is about 9-12pt with the scaling factor introduced above.

Conteúdo de intervalo de interação próxima e longe em um intervalo de interação próximo e longeNear and far interaction range Content at near and far interaction range

O tamanho mínimo de fonte legívelThe minimum legible font size

DistânciaDistance Ângulo de exibiçãoViewing angle Altura do textoText height Tamanho da fonteFont size
45cm (distância de manipulação direta)45cm (direct manipulation distance) 0.4 °-0,5 °0.4°-0.5° 3.14 – 3.9 mm3.14–3.9mm 8.9 – 11.13 pt8.9–11.13pt
m2m 0.35 °-0,4 °0.35°-0.4° 12.21 – 13.97 mm12.21–13.97mm 34.63-39.58 pt34.63-39.58pt

O tamanho de fonte legível confortavelmenteThe comfortably legible font size

DistânciaDistance Ângulo de exibiçãoViewing angle Altura do textoText height Tamanho da fonteFont size
45cm (distância de manipulação direta)45cm (direct manipulation distance) 0.65 °-0,8 °0.65°-0.8° 5.1-6.3 mm5.1-6.3mm 14.47-17.8 pt14.47-17.8pt
m2m 0,6 ° a 0,75 °0.6°-0.75° 20,9-26.2 mm20.9-26.2mm 59.4-74.2 pt59.4-74.2pt

Segoe UI (a fonte padrão do Windows) funciona bem na maioria dos casos.Segoe UI (the default font for Windows) works well in most cases. No entanto, evite usar famílias de fontes leves ou semileves em tamanho pequeno, uma vez que traços verticais finos serão vibrantes e diminuirá a legibilidade.However, avoid using light or semi light font families in small size since thin vertical strokes will vibrate and it will degrade the legibility. Fontes modernas com espessura de traço suficiente funcionam bem.Modern fonts with enough stroke thickness work well. Por exemplo, Helvetica e Arial parecem grandioso e são muito legíveis no HoloLens com pesos normais ou em negrito.For example, Helvetica and Arial look gorgeous and are very legible in HoloLens with regular or bold weights.

Exibindo ângulo exibindo a distância, o ângulo e a altura do textoViewing Angle Viewing distance, angle, and text height

Texto com o kit de ferramentas de realidade misturada v2Text with Mixed Reality Toolkit v2

Qualidade de renderização de texto nítido com dimensão adequadaSharp text rendering quality with proper dimension

Com base nesses fatores de dimensionamento, criamos texto pré-fabricados com o texto da interface do usuário e a malha de texto 3D.Based on these scaling factors, we have created text prefabs with UI Text and 3D Text Mesh. Os desenvolvedores podem usar esses pré-fabricados para obter texto nítido e tamanho de fonte consistente.Developers can use these prefabs to get sharp text and consistent font size.

Qualidade de renderização de texto nítido com dimensão adequadaSharp text rendering quality with proper dimension
Qualidade de renderização de texto nítido com dimensão adequadaSharp text rendering quality with proper dimension

Sombreador com suporte a oclusãoShader with occlusion support

O material de fonte padrão do Unity não oferece suporte a oclusão.Unity's default font material does not support occlusion. Por isso, você verá o texto por trás dos objetos por padrão.Because of this, you will see the text behind the objects by default. Incluímos um sombreador simples que dá suporte ao oclusão.We have included a simple shader that supports the occlusion. A imagem abaixo mostra o texto com material de fonte padrão (esquerda) e o texto com oclusão apropriado (direita).The image below shows the text with default font material (left) and the text with proper occlusion (right).

Sombreador com suporte a oclusãoShader with occlusion support
Sombreador com suporte a oclusãoShader with occlusion support

Consulte tambémSee also