In deze tutorial zullen we kijken naar het TextMesh Pro GUI-object. TextMesh Pro wordt naast normale GameObjects gebruikt en in een scène in 3D-ruimte geplaatst. Het is ideaal voor XR-toepassingen waar tekst vaak deel uitmaakt van de bestaande scène en er niet naar wordt verwezen in 2D-menu's.
TextMesh Pro is de ultieme tekstoplossing voor Unity. Het is de perfecte vervanging voor Unity's UI-tekst en het oude tekstnet. Het is krachtig en gebruiksvriendelijk en maakt gebruik van geavanceerde technieken voor tekstweergave en een aantal aangepaste shaders. Het biedt aanzienlijke visuele kwaliteitsverbeteringen en geeft gebruikers ongelooflijke flexibiliteit bij het ontwerpen en structureren van tekst. TextMesh Pro biedt verbeterde controle over de opmaak en lay-out van tekst met functies zoals teken-, woord-, regel- en alinea-afstand, tekenspatiëring, uitgevulde tekst, links, meer dan 30 beschikbare RTF-tags, ondersteuning voor meerdere lettertypen en sprites, aangepaste stijlen en meer . Goed optreden. Omdat de geometrie gecreëerd door TextMesh Pro twee driehoeken per teken gebruikt, net als de tekstcomponenten van Unity, zijn er geen extra prestatiekosten voor deze verbeterde visuele kwaliteit en flexibiliteit. In deze tutorial zullen we kijken naar het TextMesh Pro GUI-object. TextMesh Pro wordt naast normale GameObjects gebruikt en in een scène in 3D-ruimte geplaatst. Het is ideaal voor XR-toepassingen waar tekst vaak deel uitmaakt van de bestaande scène en er niet naar wordt verwezen in 2D-menu's.
Inleiding tot TextMesh Pro
TextMeshTextMesh Pro is een gebruiksvriendelijk systeem voor tekst van hoge kwaliteit. Het heeft veel opties voor het weergeven en opmaken van tekst en het is een gemakkelijke manier om een professionele toets toe te voegen aan de gebruikersinterface van een project. Het artikel laat zien hoe u lettertypen kunt voorbereiden voor gebruik in TextMesh Pro, nieuwe TextMesh Pro-objecten kunt maken en deze objecten kunt wijzigen.
1. Maak een TextMesh Pro-tekstobject:
1. Selecteer GameObject in de vervolgkeuzelijst of met de rechtermuisknop in het hiërarchievenster UI> TextMesh Pro - Tekst.
2. Als je TextMesh Pro (TMP) voor het eerst in een project gebruikt, biedt Unity de import van de TMP Essentials en Voorbeelden & Extra's pakketten aan (als je het TextMesh Pro Asset pakket nog niet hebt geïmporteerd). Klik op TMP Essentials importeren en sluit het venster.
TMP kan ook worden geïmporteerd als een opgenomen activapakket wanneer het project wordt gemaakt.
3. Als de tekst niet zichtbaar is op het tabblad Scène, markeert u deze in de hiërarchie en drukt u op de F-toets op het toetsenbord terwijl de muisaanwijzer zich in de scèneweergave bevindt.
4. Klik op het slotje in de rechterbovenhoek van het infovenster om de focus naar het TextMesh Pro-tekstobject te brengen.
5. Stel de grootte van het tekstgebied in op 300 x 100 in de instellingen voor de rechthoektransformatie.
De rechthoektransformatie bepaalt de positie en grootte van het tekstgebied.
6. Schakel tekstterugloop en -overloop in het gedeelte Lettertype-instellingen van het infovenster Text Mesh Pro UGUI in.
TextMesh Pro biedt een verscheidenheid aan lay-out- en weergave-opties.
7. Probeer de materiaalvoorinstelling en verschillende lettertype-instellingen te wijzigen. U kunt de kleur van het lettertype instellen door de hoekpuntkleur te wijzigen of in de materiaalinstellingen. Klik op het driehoekje in het materiaal onderaan het infovenster om de instellingen voor Lettertype, Omtrek en Onderlaag (slagschaduw) te zien.
Klik op de grijze balken buiten de twee selectievakjes om de eigenschappen voor die specifieke lettertype-instelling weer te geven of te verbergen.
8. Vink het vakje aan in de rechterhelft van de sectie Overzicht en klik ergens anders in de sectie om de instellingen te openen.
9. Pas de kleur en dikte van de tekst aan.
Door een omtrek aan uw tekst toe te voegen, kunt u deze gemakkelijker bekijken in drukke omgevingen.
10. Probeer de instellingen voor Underlay en Foreground te wijzigen. Klik op het tandwiel in de rechterbovenhoek en selecteer Reset om terug te keren naar de standaardinstellingen.
In dit menu kunt u terugkeren naar de oorspronkelijke materiaalinstellingen, materiaaleigenschappen overdragen en materiaalvoorinstellingen maken.
11. Experimenteer met de voorinstellingen van het lettertypemateriaal en pas de lettertype-instellingen naar wens aan.
TextMesh Pro wordt geleverd met drie materiaalvoorinstellingen die u kunt gebruiken om snel de effecten van verschillende instellingen te onderzoeken.
2. Toegang tot TextMeshPro-objecten in code:
Hier gebruiken we de systeemnaamruimte in ons script om toegang te krijgen tot datum- en tijdfuncties. TextMesh Pro vereist alleen de TMPro-naamruimte.
1. Kies in de vervolgkeuzelijst GameObject Create Blank en noem het ClockDisplay.
2. Maak een nieuw script met de naam "Clock" en voeg het toe aan ClockDisplay. Dubbelklik op Klok in het projectvenster om Visual Studio of MonoDevelop te openen. Verwijder de methode Start() aangezien we deze niet zullen gebruiken voor deze oefening.
3. Voer het volgende in vanaf regel 4:
met behulp van TMPro;
systeem gebruiken;
4. Voer op regel 8 het volgende in:
openbare TMP_Text clockText;
5. Voer in Update op regel 12 het volgende in:
clockText.text = DateTime.Now.ToString();
6. Het klokscript is nu voltooid.
Sla de wijzigingen op en keer terug naar Unity.
Het voltooide horlogescript:
7. Sleep het TextMesh Pro-object dat je in Oefening 1 hebt gemaakt naar het gebied met de naam Clock Text in de Clock Inspector.
8. Druk op Afspelen om de demonstratie te starten. De huidige datum en tijd worden weergegeven met de materiaalinstellingen die zijn opgegeven in de TextMesh Pro Text Inspector.
9. Als u klaar bent, verlaat u de afspeelmodus.
3. Maak een lettertype voor gebruik met TextMesh Pro
1. Als u nog geen bronmap in Assets heeft, maakt u er een en maakt u in die map een map met de naam "Fonts". Sla uw gemaakte lettertype-item hier op.
2. Sleep een lettertypebestand (OpenType of TrueType) naar de map Resources.
3. Selecteer in de vervolgkeuzelijst Venster TextMesh Pro> Font Asset Creator.
4. Klik op de cirkel naast het lettertype-bronslot en selecteer uw lettertype.
U kunt een lettertype ook rechtstreeks vanuit de projectweergave naar de sleuf slepen. Lettertype-items kunnen in verschillende projecten worden hergebruikt.
5. Klik op Lettertypeatlas genereren.
6. Klik op Opslaan.
7. Navigeer naar Middelen> Bronnen> Lettertypen, geef uw lettertype een naam en klik op Opslaan.
8. Als het nog steeds niet in het infovenster verschijnt, klikt u op het TextMesh Pro-tekstobject in het hiërarchievenster om het te markeren.
9. Klik op de cirkel naast Lettertype-item en selecteer het lettertype-item dat u zojuist hebt gemaakt.
10. Activeer de afspeelmodus om uw nieuwe lettertype-item in actie te zien.
11. Verlaat de afspeelmodus.
TextMesh Pro is zeer veelzijdig. Het kan worden gebruikt voor elke situatie die tekst nodig heeft, inclusief games, grafische toepassingen, video's en meer.
TextMesh Pro: basisprincipes
In deze tutorial zullen we kijken naar de TextMesh Pro en TextMesh Pro GUI-objecten. TextMesh Pro wordt naast normale GameObjects gebruikt en in een scène in 3D-ruimte geplaatst. Het is ideaal voor XR-toepassingen waar tekst vaak deel uitmaakt van de bestaande scène en er niet naar wordt verwezen in 2D-menu's. De TextMesh Pro UGUI-component werkt met het canvassysteem en is bedoeld om de UI-tekstcomponent te vervangen en uit te breiden met verbeterde functies.
De donkere tijden
Alle tekstcomponenten in Unity gebruiken texturen om glyphs op te slaan - de visuele representatie van karakters. De oudere tekstcomponenten (TextMesh en UI-Text) gebruiken gerasterde bitmaps om deze glyphs weer te geven. TextMesh Pro gebruikt voornamelijk Signed Distance Fields (SDF) om de vorm van tekens te benaderen voordat ze in een textuur worden omgezet. Stel je voor dat we proberen een vorm in een 10x10 pixelraster weer te geven zonder al te technisch te worden. In een bitmapstructuur zou elke rasterpositie mogelijk een witte, grijze of zwarte pixel bevatten, afhankelijk van de kleurinformatie op die specifieke positie. In een SDF-textuur zou elke rasterpositie een afstand tot het volgende kenmerk van de vorm bevatten, wat zou resulteren in een betere weergave van de oorspronkelijke vorm binnen een vast pixelraster.Als een bitmapshader deze vorm 1: 1 tekent, is het gewoon een textuurzoekopdracht voor de opgegeven pixelpositie. Als het een pixel bevat, wordt het getekend; Anders is het niet. Texturen bevatten een eindig aantal pixels. Bij het in- of uitzoomen moet de shader de grootte van elke pixel aanpassen aan de schermresolutie van het apparaat. De resulterende vorm wordt blokkerig, wazig of te scherp. Een SDF-shader doet dezelfde textuurzoekopdracht, maar deze keer retourneert het een afstandsvoorbeeld. Afhankelijk van de afstand tekent de shader een volledig ondoorzichtige of een alfa-gemengde pixel. Bij in- of uitzoomen interpoleert de arcering tussen afstandsvoorbeelden, zodat vormen (tekst) netjes kunnen worden weergegeven in Unity, ongeacht de schermresolutie, zoom en schaal. Om bitmaptekst netjes weer te geven, moeten de glyphs worden getekend in een verhouding van 1: 1, waarbij elke glyph opnieuw moet worden gesampled voor elke lettergrootte. SDF-texturen hoeven echter slechts één enkele weergave van elke glyph te bevatten, wat resulteert in een veel efficiënter gebruik van textuurruimte. De volgende afbeeldingen tonen de grootste visuele verschillen tussen het oude en het nieuwe systeem. Het leuke van deze voorbeelden is dat ondanks de superieure weergavekwaliteit van SDF, zowel SDF als gerasterde tekst hetzelfde aantal polygonen (quads) gebruiken om de tekst weer te geven. Dit betekent dat de prestaties van TextMesh Pro niet worden beïnvloed. We voegen zowel een TextMesh Pro- als een TextMesh Pro GUI-object toe aan onze scène en bekijken elk object in het infovenster.
TextMesh Pro toevoegen aan uw GameObjects
Beide methoden maken een nieuw GameObject met vier nieuwe componenten:
Rechte transformatie: Een container voor uw tekstobject vergelijkbaar met die in Microsoft Office of Photoshop. U kunt de grootte, positie en rotatie van uw container wijzigen.
Mesh-renderer: Rendert en positioneert uw tekst in 3D-ruimte.
TextMeshPro - Tekst: The Hoofdcomponent waarin je tekst kunt schrijven, het lettertype-element, de materiaalvoorinstelling, de lettergrootte kunt wijzigen, alineastijlen kunt wijzigen, kleuren/verlopen kunt activeren en een aantal andere elementen kunt selecteren.
Opmaak- en stijlopties: Probeer er eens mee te spelen.
Materiaal voorinstelling: Het materiaal dat wordt gebruikt door het lettertype-item waarnaar wordt verwezen in de component TextMeshPro. Materialen bepalen het uiterlijk van je GameObjects. U kunt hier ook het uiterlijk van uw tekst definiëren en opties vinden die variëren van contouren tot gloed, schuine randen, texturen en meer.
Aanvullende instellingen: Met deze instellingen kunt u onder andere de marges van uw tekst aanpassen, sprite-items toewijzen en aanpassen in welke laag de tekst wordt weergegeven.
Voordat u tekst invoert, moet u ervoor zorgen dat terugloop en overloop zijn ingeschakeld in de TextMesh Pro-component. Deze opties beperken de tekst tot het rect transform-object.
Door de automatische grootte wordt de voorbeeldgrootte van uw lettertype dynamisch aangepast aan de rechthoektransformatie. Wees voorzichtig bij het gebruik van Auto Size. Als u dit inschakelt, krijgt u een optimale steekproefomvang (bijvoorbeeld voor mobiele toepassingen waarbij het moeilijk kan zijn om de doelresolutie voor elk apparaat te voorspellen). Het moet echter worden gedeactiveerd zodra u een goede maat hebt gekozen om onnodige prestaties te voorkomen.
TextMesh Pro toevoegen aan uw gebruikersinterface
Het toevoegen van TextMeshPro aan een gebruikersinterface is een vergelijkbaar proces: navigeer in de hiërarchie naar UI> Tekst - TextMeshPro. Met uitzondering van de canvas-renderer is deze identiek aan de vorige versie. Hiermee wordt een nieuw Canvas GameObject gemaakt met een TextMesh Pro GameObject. Parenting betekent dat de tekst over het canvas wordt verplaatst. De componenten in UI TextMesh Pro worden weergegeven met dit canvasobject in plaats van een Unity Mesh-renderer.
Oorspronkelijk gepost 2020-03-30 12:45:25.