TextMesh Pro: Basics

von Claudia Wendt

TextMesh Pro: Basics

In diesem Tutorial werden wir uns die GUI-Objekte TextMesh Pro und TextMesh Pro ansehen. TextMesh Pro wird neben normalen GameObjects verwendet und in einer Szene im 3D-Raum platziert. Es ist ideal für XR-Anwendungen, bei denen Text häufig Teil der vorhandenen Szene ist und nicht in 2D-Menüs verwiesen wird.


TextMesh Pro: Basics

In diesem Tutorial werden wir uns die GUI-Objekte TextMesh Pro und TextMesh Pro ansehen. TextMesh Pro wird neben normalen GameObjects verwendet und in einer Szene im 3D-Raum platziert. Es ist ideal für XR-Anwendungen, bei denen Text häufig Teil der vorhandenen Szene ist und nicht in 2D-Menüs verwiesen wird. Die TextMesh Pro UGUI-Komponente funktioniert mit dem Canvas-System und soll die UI-Textkomponente durch verbesserte Funktionen ersetzen und erweitern.


Die dunklen Zeiten

Alle Textkomponenten in Unity verwenden Texturen zum Speichern von Glyphen - der visuellen Darstellung von Zeichen. Die älteren Textkomponenten (TextMesh und UI-Text) verwenden gerasterte Bitmaps, um diese Glyphen zu rendern. TextMesh Pro verwendet hauptsächlich SDF (Signed Distance Fields), um die Form von Zeichen zu approximieren, bevor sie in eine Textur gerendert werden. Stell dir vor, wir versuchen, eine Form in einem Raster von 10 x 10 Pixel darzustellen, ohne zu technisch zu werden. In einer Bitmap-Textur würde jede Rasterposition möglicherweise ein weißes, graues oder schwarzes Pixel enthalten, abhängig von den Farbinformationen an dieser bestimmten Position. In einer SDF-Textur würde jede Gitterposition einen Abstand zum nächsten Merkmal der Form enthalten, was zu einer besseren Wiedergabe der ursprünglichen Form innerhalb eines festen Pixelgitters führen würde.Wenn ein Bitmap-Shader diese Form in einer Größe von 1: 1 zeichnet, ist dies einfach der Fall eine Textur-Suche für die angegebene Pixelposition. Wenn es ein Pixel enthält, wird es gezeichnet; Andernfalls ist dies nicht der Fall. Texturen enthalten eine endliche Anzahl von Pixeln. Beim Vergrößern oder Verkleinern muss der Shader die Größe jedes Pixels im Verhältnis zur Anzeigeauflösung des Geräts anpassen. Diese resultierende Form wird dadurch entweder blockartig, verschwommen oder zu scharf. Ein SDF-Shader führt dieselbe Textur-Suche durch, gibt jedoch diesmal ein Entfernungsbeispiel zurück. Je nach Entfernung zeichnet der Shader entweder ein vollständig undurchsichtiges oder ein Alpha-gemischtes Pixel. Beim Vergrößern oder Verkleinern interpoliert der Shader zwischen Entfernungsbeispielen, sodass Formen (Text) unabhängig von Bildschirmauflösung, Zoom und Skalierung in Unity sauber gerendert werden können. Um Bitmap-Text sauber zu rendern, müssen die Glyphen im Verhältnis 1: 1 gezeichnet werden, wobei jedes Glyphen für jede Schriftgröße neu abgetastet werden muss. SDF-Texturen müssen jedoch nur eine einzige Darstellung jedes Glyphen enthalten, was zu einer wesentlich effizienteren Nutzung des Texturraums führt. Die folgenden Bilder zeigen die größten visuellen Unterschiede zwischen dem alten und dem neuen System. Das Schöne an diesen Beispielen ist, dass trotz der überlegenen Renderqualität von SDF sowohl SDF als auch gerasterter Text dieselbe Anzahl von Polygonen (Quads) zum Rendern des Texts verwenden. Dies bedeutet, dass die Leistung von TextMesh Pro nicht beeinträchtigt wird. Wir fügen unserer Szene sowohl ein TextMesh Pro- als auch ein TextMesh Pro-GUI-Objekt hinzu und sehen uns jedes Objekt im Inspektor an.


Hinzufügen von TextMesh Pro zu Ihren GameObjects
Das Hinzufügen von TextMesh Pro zu einem neuen oder vorhandenen GameObject ist relativ einfach.
Klicke mit der rechten Maustaste auf eine beliebige Stelle im Hierarchiefenster und navigiere zu 3D-Objekte> Text - TextMeshPro. Alternativ kann TextMeshPro zu einem vorhandenen Objekt hinzugefügt werden: > Komponente hinzufügen> Netz> TextMeshPro - Text.
 


Beide Methoden erstellen ein neues GameObject mit vier neuen Komponenten:


Rect Transform: Ein Container für dein Textobjekt, der den in Microsoft Office oder Photoshop verwendeten ähnlich ist. Du kannst die Größe, Position und Drehung deines Containers ändern.


Mesh Renderer: Rendert und positioniert deinen Text im 3D-Raum.


TextMeshPro - Text: Die Hauptkomponente, in der du Text schreiben, das Schriftelement, die Materialvoreinstellung, die Schriftgröße ändern, Absatzstile ändern, Farben / Verläufe aktivieren und eine Reihe anderer Elemente auswählen kannst.


Formatierungs- und Stiloptionen: Versuche, damit herumzuspielen.


Materialvoreinstellung: Das Material, das von dem in der TextMeshPro-Komponente referenzierten Font Asset verwendet wird. Materialien definieren das Aussehen Ihrer GameObjects. Ebenso definierst du hier das Erscheinungsbild deines Textes und findest Optionen, die von Konturen über Glühen, Abschrägungen bis hin zu Texturen und mehr reichen.


Zusätzliche Einstellungen: Mit diesen Einstellungen kannst dz neben anderen Optionen die Ränder deine Texts anpassen, Sprite-Assets zuweisen und anpassen, in welcher Ebene der Text vorhanden ist.


Stellen Sie vor dem Eingeben von Text sicher, dass Wrapping und Overflow in der TextMesh Pro-Komponente aktiviert sind. Diese Optionen beschränken den Text auf das Rect Transform-Objekt.


Durch die automatische Größe wird die Stichprobengröße deiner Schriftart dynamisch an die Rechtecktransformation angepasst. Sei vorsichtig bei der Verwendung von Auto Size. Wenn du sie aktivierst, erhältst du eine optimale Stichprobengröße (z. B. für mobile Anwendungen, bei denen es schwierig sein kann, die Zielauflösung für jedes Gerät vorherzusagen). Sie sollte jedoch deaktiviert werden, sobald du dich für eine gute Größe entschieden hast, um unnötigen Leistungsaufwand zu vermeiden.
 


Hinzufügen von TextMesh Pro zu deiner Benutzeroberfläche



Das Hinzufügen von TextMeshPro zu einer Benutzeroberfläche ist ein sehr ähnlicher Vorgang: Navigiere in der Hierarchie zu UI> Text - TextMeshPro. Mit Ausnahme des Canvas-Renderers ist er mit der vorherigen Version identisch. Dadurch wird ein neues Canvas-GameObject mit einem TextMesh Pro-GameObject erstellt. Elternschaft bedeutet, dass der Text entlang der Leinwand verschoben wird. Die Komponenten in UI TextMesh Pro werden mit diesem Canvas-Objekt anstelle eines Unity Mesh-Renderers gerendert.




Lesen Sie den ganzen Artikel

Claudia Wendt

Hagenow

Zur Person

Claudia Wendt

Weitere Profile

Claudia Wendt