Das Beste aus TextMesh Pro in Unity 2018 herausholen

Ganz gleich, ob Sie an einem FPS, einem Puzzlespiel oder einem VR-Erlebnis arbeiten, einer der Aspekte, um die Sie sich kümmern müssen, ist die Benutzeroberfläche. Glücklicherweise ist TextMesh Pro seit März 2017 Teil der Unity-Familie. Das bedeutet, dass es viel einfacher und schneller geworden ist, Ihre UI in Unity großartig aussehen zu lassen!
Für diejenigen unter Ihnen, die diese Entwicklungen nicht verfolgt haben: TextMesh Pro ist ein Ersatz für die Standard-Textkomponenten von Unity. Es ist genauso leistungsfähig (in einigen Fällen sogar noch leistungsfähiger) und verwendet eine völlig andere Rendering-Technik namens Signed Distance Field (SDF), die ursprünglich von Valve in Team Fortress 2 verwendet wurde. TextMesh Pro bietet Ihnen nicht nur die Möglichkeit, Ihren Text ohne großen Aufwand großartig aussehen zu lassen, sondern auch eine weitaus fortgeschrittenere Steuerung über den Inspektor oder das Skripting. In diesem Beitrag werden wir uns ansehen, wie man das Beste aus diesem unglaublichen Werkzeug herausholen kann!
Es gibt zwei Hauptgründe, warum es eine gute Idee ist, Ihre Projekte mit TextMesh Pro zu beginnen. Erstens: optische Verbesserungen. Dank des SDF-Renderings können Sie das Aussehen Ihres Textes leicht ändern, ohne die Schriftart neu erstellen zu müssen. Jeder TextMesh Pro-Komponente ist ein Material zugeordnet, das Sie anpassen können, um den Stil Ihres Textes zu verändern. Zweitens: bessere Kontrolle. Die TextMesh Pro-Komponente enthält alle Variablen, die Sie in der normalen Textkomponente finden, und noch viel mehr. Und als ob das noch nicht genug wäre, sollten Sie wissen, dass TextMesh Pro derzeit von mehr als einer Viertelmillion Entwickler auf der ganzen Welt verwendet wird!
Bei der Arbeit mit dem standardmäßigen Unity-Text ist Ihnen vielleicht schon aufgefallen, dass das Objekt beim Dehnen oder Ändern der Größe manchmal unscharf aussieht. Das liegt daran, dass der Text keine Informationen darüber enthält, wie er bei einer Größenänderung aussehen würde, und Unity daher "improvisieren" und versuchen muss, die fehlenden Pixel im Handumdrehen zu erzeugen. Aufgrund der anderen Rendering-Technik, die TextMesh Pro verwendet, ist dies kein Problem mehr. SDF basiert auf dem Prinzip, einen Font Atlas in hoher Auflösung zu rendern, so dass die Schrift immer Informationen darüber hat, wie ein Zeichen bei Größenänderung aussehen würde.

Mit TextMesh Pro können Sie jede beliebige Schriftdatei importieren und Ihr eigenes Font Asset erstellen(Fenster > TextMesh Pro > Font Asset Creator). Damit können Sie die Auflösung für den Schriftatlas wählen (die bestimmt, wie effektiv das SDF-Rendering für Ihren Text sein wird). Je niedriger die gewählte Auflösung ist, desto schneller wird der Font Atlas erstellt.

Da die Schrift Informationen darüber hat, wie sie in verschiedenen Größen aussehen würde, kann sie auch ihre Kontur und ihren Schlagschatten aus dem Schriftatlas rekonstruieren. Ändern Sie einfach die Materialeigenschaften und beobachten Sie, wie Ihr Text sein Aussehen völlig verändert!
Wie wir gesehen haben, bietet TextMesh Pro großartig aussehenden Text. Aber was nützt ein schöner Text, wenn man keine Kontrolle über ihn hat? Die Komponente TextMesh Pro verfügt über Optionen, mit denen Sie die Schriftgröße, den Abstand, die Ausrichtung und die Unterschneidung anpassen oder die automatische Größenanpassung aktivieren und Ihren Text in einen Container einpassen können. Vor allem die beiden letztgenannten geben Ihnen eine große Kontrolle über die Arbeit mit verschiedenen Plattformen oder Sprachen, da sie die automatische Größenanpassung Ihres Textes an einen bestimmten Textcontainer ermöglichen, ohne dass ein Skript erforderlich ist. Wenn Sie diese Einstellungen jedoch zur Laufzeit ändern möchten, können Sie über die TextMeshPro API auf alle Variablen in den TextMesh Pro Komponenten zugreifen.
Für eine zusätzliche Anpassungsebene können Sie auch die Komponente Text-Info-Debug-Tool zu Ihrem Textobjekt hinzufügen, so dass Sie Zeichen, Wörter, Links, Zeilen usw. visuell darstellen können.

Wenn Sie sich die Zeit sparen wollen, Ihren Text jedes Mal neu zu formatieren, wenn Sie eine Überschrift, einen Titel, ein Zitat usw. einfügen, können Sie eine Stilvorlage für einen bestimmten Zweck einrichten. Ein Beispiel wäre die Einfügung einer Verzierung in eine Kopfzeile. Um eine Stilvorlage zu erstellen, wählen Sie Erstellen > TextMesh Pro > Stilvorlage. Sie können dieses neue Asset als Standardstilvorlage unter Bearbeiten > Projekteinstellungen > TextMesh Pro Einstellungen festlegen.

Sie können das Aussehen des Textes nicht nur über den Inspektor oder ein Script steuern, sondern auch über das Textfeld selbst. Wenn Sie mit HTML oder XML vertraut sind, können Sie das Aussehen Ihres Textes während der Eingabe anpassen. Falls nicht, lesen Sie einfach die Anleitung zur Verwendung von Rich Text mit TextMesh Pro), um loszulegen! Dies ist besonders nützlich, wenn Sie mehrere Stile, Größen und Materialien in ein und demselben Textobjekt verwenden möchten.

Eine weitere Möglichkeit, TextMesh Pro großartig aussehen zu lassen, besteht darin, einen Surface Shader auf Ihren Text anzuwenden. Dadurch wird die Beleuchtung in der Szene auf den Text übertragen. Im folgenden Beispiel bewegen sich einige Echtzeit-Punktlichter in der Szene und wirken sich auf den Text aus.

Die Materialeigenschaften bieten Ihnen die Möglichkeit, Einstellungen wie Fläche, Umriss, Fase, Beleuchtung, BumpMap, EnvMap, Glühen und Debug-Einstellungen anzupassen.
Sobald Sie ein Material erstellt haben, mit dem Sie zufrieden sind, können Sie eine Materialvorgabe erstellen, die wir jederzeit wiederverwenden können, speziell für das verwendete Schrift-Asset. Klicken Sie dazu mit der rechten Maustaste auf den Materialnamen und wählen Sie "Materialvoreinstellung erstellen". Dadurch wird ein Asset erstellt, das wir in unserer Komponente TextMesh Pro > Schrifteinstellungen > Materialvoreinstellung auswählen können .
Wenn Sie einen Font Atlas generiert haben, in dem bestimmte Zeichen fehlen, wird TextMesh Pro das Zeichen bei der Eingabe auf eine Standardglyphe zurückfallen lassen. Sie können diese Glyphe ändern, indem Sie auf Bearbeiten > Projekteinstellungen > TextMesh Pro Einstellungen gehen . Alternativ können Sie ein oder mehrere Schriftarten-Assets einrichten, auf die TextMesh Pro zurückgreift, wenn das Zeichen im primären Atlas nicht gefunden wird. Aus Optimierungsgründen ist es sinnvoll, den Haupt-Schriftatlas in einer höheren Auflösung zu halten und alle Fallback-Atlanten in einer niedrigeren Auflösung.
Darüber hinaus können Sie die TextMesh Pro-Einstellungen verwenden, um Ressourcenpfade für Schriftarten und Materialien oder Sprite-Assets einzurichten. Wenn Sie Rich Text verwenden, können Sie ein Sprite einfügen, je nachdem, welche Sprites im primären Sprite-Asset verfügbar sind, das Sie in den Einstellungen definiert haben. Am einfachsten ist es, ein Sprite Sheet zu importieren, es dann im Sprite-Editor in Scheiben zu schneiden, mit der rechten Maustaste auf das Asset zu klicken und Erstellen > TextMesh Pro > Sprite Asset zu wählen . In diesem neuen Asset können Sie Einstellungen wie Offset oder Pivot anpassen. Ebenso können Sie eine Reihe von Fallback-Sprite-Assets einrichten, auf die Sie zurückgreifen können, wenn ein Sprite nicht in den primären Sprite-Assets gefunden wird.

Was die Leistung betrifft, so funktioniert TextMesh Pro, wie bereits erwähnt, ähnlich wie der Standardtext: Er wird immer noch auf Quads gerendert, ist also genauso effizient wie eine Bitmap-Schrift. Es gibt auch keine Laufzeitspeicherzuweisung: TextMesh Pro weist den Textobjekten erst dann Platz zu, wenn Sie auf Play drücken. Wenn Sie die Anzahl der Zeichen um einen signifikanten Betrag erhöhen, wird nur eine Neuzuweisung vorgenommen; wenn Sie die Anzahl der Zeichen verringern, wird keine Neuzuweisung vorgenommen, es sei denn, sie verringert sich um mindestens 256 Zeichen. Und was die Verbesserungen betrifft, so können Sie dank der von TextMesh Pro verwendeten SDF-Rendering-Technik bessere Ergebnisse für Stile wie Outline und Drop Shadow erzielen.
Das meiste, was in diesem Blog erwähnt wurde, ist als Beispielszene verfügbar, wenn Sie TextMesh Pro in Ihr Projekt importieren (über Fenster > Paketmanager > TextMesh Pro > Installieren ab Unity 2018.1). Ich empfehle Ihnen dringend, einen Blick darauf zu werfen, bevor Sie mit TextMesh Pro beginnen, da ihr Inhalt die meisten Ihrer Fragen beantworten könnte. Wenn Sie uns jedoch Ihr Feedback geben möchten oder noch Fragen haben, können Sie dies gerne in den Foren tun.
