Text in Unity

Text ist eine der wichtigsten Komponenten in holografischen Apps. Zum Anzeigen von Text in Unity können Sie drei Arten von Textkomponenten verwenden: UI-Text, 3D-Textgitternetz und Textgitternetz Pro. Standardmäßig erscheinen Benutzeroberflächentext und 3D-Textgitternetz unscharf und sind zu groß. Das Ändern einiger Variablen führt zu einem schärferen Text mit höherer Qualität und einer verwaltbaren Größe in HoloLens. Sie können eine bessere Renderingqualität erzielen, indem Sie einen Skalierungsfaktor anwenden, um die richtigen Dimensionen zu erhalten, wenn Sie die Komponenten UI-Text und 3D-Textgitternetz verwenden.

Abrufen von spitzem und ansprechendem Text
Unscharfer Standardtext in Unity

Arbeiten mit 3D-Text (Textgitternetz) und Benutzeroberflächentext von Unity

Unity geht davon aus, dass alle neuen Elemente, die einer Szene hinzugefügt werden, eine Unity-Einheit in der Größe oder eine Transformationsskala von 100 % sind. Eine Unity-Einheit wird auf HoloLens in etwa 1 Meter übersetzt. Bei Schriftarten ist das Begrenzungsfeld für eine 3D-Textmesh standardmäßig bei etwa einer Meter Höhe enthalten.

Arbeiten mit Schriftarten in Unity
Standardmäßiger Unity-3D-Text (Textmesh) belegt eine Unity-Einheit(1 Meter).


Die meisten visuellen Designer verwenden Punkte, um Schriftgrade in der realen Welt zu definieren. Es gibt etwa 2835 (2.834,645666399962) Punkte in einer Verbrauchsmessung. Basierend auf der Punktsystemkonvertierung in eine Verbrauchseinheit und dem Standardmäßigen Text mesh-Schriftgrad von Unity von 13 entspricht die einfache Berechnung von 13 geteilt durch 2835 0,0046 (0,004586111116), was eine gute Standardskala für den Anfang bietet (einige möchten möglicherweise auf 0,005 runden). Das Skalieren des Textobjekts oder Containers auf diese Werte ermöglicht nicht nur die 1:1-Konvertierung von Schriftgraden in einem Entwurfsprogramm, sondern bietet auch einen Standard, sodass Sie die Konsistenz während ihrer gesamten Erfahrung beibehalten können.

Skalierungswerte für unity-3D-Text und UI-Text
Skalierungswerte für unity-3D-Text und UI-Text


Unity 3D-Textgitternetz mit optimierten Werten
Unity 3D-Textgitternetz mit optimierten Werten


Beim Hinzufügen eines Benutzeroberflächen- oder Canvas-basierten Textelements zu einer Szene ist die Größenunterschiede immer noch größer. Die Unterschiede in den beiden Größen betragen etwa 1000 %, wodurch der Skalierungsfaktor für benutzeroberflächenbasierte Textkomponenten auf 0,00046 (0,0004586111116) oder 0,0005 für den gerundeten Wert erhöht wird.

Unity UI Text with optimized values (Text der Unity-Benutzeroberfläche mit optimierten Werten)
Unity UI Text with optimized values (Text der Unity-Benutzeroberfläche mit optimierten Werten)


Hinweis

Der Standardwert einer beliebigen Schriftart kann von der Texturgröße dieser Schriftart oder davon beeinflusst werden, wie die Schriftart in Unity importiert wurde. Diese Tests wurden basierend auf der Arial-Standardschriftart in Unity sowie auf einer anderen importierten Schriftart ausgeführt.

Arbeiten mit Text Mesh Pro

Mit der Text Mesh-Pro von Unity können Sie die Qualität des Textrenderings sichern. Mithilfe der SDF-Technik (Signed Distance Field) werden klartextgliederungen unabhängig vom Abstand unterstützt. Mit der gleichen Berechnungsmethode, die wir oben für das 3D-Textgitternetz und den Benutzeroberflächentext verwendet haben, können wir die richtigen Skalierungswerte für herkömmliche typografische Punkte finden. Da das standardmäßige 3D-Textgitter Pro Schriftart mit der Größe 36 eine Begrenzungsgröße von 2,5 Unity-Einheiten (2,5 m) hat, können wir einen Skalierungswert von 0,005 verwenden, um die Punktgröße abzurufen. Die Textgitternetz-Pro im Menü der Benutzeroberfläche hat eine standardmäßige Begrenzungsgröße von 25 Unity-Einheiten (25 m). Dadurch erhalten wir 0,0005 für den Skalierungswert.

Skalierungswerte für unity-3D-Text und -Benutzeroberfläche
Skalierungswerte für unity-3D-Text und -Benutzeroberfläche

Wie Sie erwarten können, sehen Typgrößen, die wir auf einem PC oder Tabletgerät verwenden (in der Regel zwischen 12 und 32t), bei einer Entfernung von 2 Metern klein aus. Dies hängt von den Merkmalen der einzelnen Schriftarten ab, aber im Allgemeinen liegen der empfohlene minimale Anzeigewinkel und die Schrifthöhe für die Lesbarkeit bei etwa 0,35°-0,4°/12,21-13,97 mm, basierend auf unseren Forschungsstudien der Benutzer. Es ist etwa 35-40 pt mit dem oben eingeführten Skalierungsfaktor.

Für die Nahinteraktion bei 0,45 m (45 cm) beträgt der Anzeigewinkel der mindestens lesbaren Schriftart und die Höhe 0,4°-0,5° / 3,14–3,9mm. Dies entspricht etwa 9 bis 12 pt mit dem oben beschriebenen Skalierungsfaktor.

Near and far interaction range Content at near and far interaction range

Der mindestens lesbare Schriftgrad

Entfernung Betrachtungswinkel Texthöhe Schriftgrad
45 cm (direkter Bearbeitungsabstand) 0.4°-0.5° 3.14–3.9mm 8.9–11.13pt
2 m 0.35°-0.4° 12.21–13.97mm 34.63-39.58 pt

Der lesbare Schriftgrad

Entfernung Betrachtungswinkel Texthöhe Schriftgrad
45 cm (direkter Bearbeitungsabstand) 0.65°-0.8° 5,1 bis 6,3 mm 14.47-17.8 pt
2 m 0.6°-0.75° 20,9-26,2 mm 59.4-74.2 pt

Segoe UI (die Standardschriftart für Windows) funktioniert in den meisten Fällen gut. Vermeiden Sie jedoch die Verwendung von einfachen oder halb hellen Schriftfamilien in kleiner Größe, da schlanke vertikale Striche vibrieren und die Lesbarkeit beeinträchtigen. Moderne Schriftarten mit ausreichender Strichstärke funktionieren gut. Beispielsweise sehen Helvetica und Arial gut aussehend aus und sind in HoloLens mit regulären oder fett formatierbaren Gewichtungen lesbar.

Anzeigewinkel Anzeigeabstand, Winkel und Texthöhe

Text mit Mixed Reality Toolkit v2

Hohe Textrenderingqualität mit richtiger Dimension

Basierend auf diesen Skalierungsfaktoren haben wir Textpräfabs mit Benutzeroberflächentext und 3D-Textgitternetzerstellt. Entwickler können diese Prefabs verwenden, um einen starken Text und einen konsistenten Schriftgrad zu erhalten.

Hohe Textrenderingqualität mit richtiger Dimension
Hohe Textrenderingqualität mit richtiger Dimension

Shader mit Verdeckungsunterstützung

Das Standardschriftmaterial von Unity unterstützt keine Verdeckung. Aus diesem Grund wird der Text hinter den Objekten standardmäßig angezeigt. Wir haben einen einfachen Shader hinzugefügt, der die Verdeckung unterstützt. Die folgende Abbildung zeigt den Text mit Standardschriftartmaterial (links) und den Text mit korrekter Verdeckung (rechts).

Shader mit Verdeckungsunterstützung
Shader mit Verdeckungsunterstützung

Nächster Entwicklungsprüfpunkt

Wenn Sie die von uns festgelegte Unity-Entwicklungsreise verfolgen, befinden Sie sich in der Mitte der MRTK-Kernbausteine. Von hier aus können Sie mit dem nächsten Baustein fortfahren:

Oder fahren Sie mit den Funktionen und APIs der Mixed Reality-Plattform fort:

Sie können jederzeit zu den Prüfpunkten für die Unity-Entwicklung zurückkehren.

Siehe auch