Zpět na domů

UniText 2.0: vykreslování fontů v Unity

UniText 2.0 aktualizuje textový engine pro Unity se zaměřením na HarfBuzz tvarování, SDF/MSDF vykreslování a Variable Fonts. Podpora BiDi/RTL, dynamický atlas a World Space text usnadňují vývoj složitých UI. Komerční verze s otevřenou 1.0.

UniText 2.0 v Unity: od tvarování po World Space
Advertisement 728x90

# UniText 2.0: klíčové vylepšení v renderingu a zpracování písem pro Unity

UniText 2.0 představuje kompletní přepracování enginu pro práci s textem v Unity. Changelog pokrývá prakticky všechny komponenty, zachovává výhody verze 1.0 a přidává nové funkce. Zaměření se posunulo na zjednodušení práce se styly, písmy a moderními standardy Unicode. Open-source verze 1.0 zůstává dostupná, zatímco 2.0 je komerční přes oficiální web nebo Asset Store.

Verze 2.0 je zaměřena na středně pokročilé a senior developery, nabízí nástroje pro optimalizaci buildů a renderingu bez kompromisů v výkonu. Podpora Burst zajišťuje zrychlení na nativních platformách, i když na WebGL je omezena současnými možnostmi Unity 6.4.

Technologie renderingu a shapingu

Engin využívá HarfBuzz pro shaping textu – standardní nástroj pro složité skripty. Rendering je realizován přes SDF a MSDF, což zajišťuje ostrost v různých měřítkách bez artefaktů. Integrace s Burst kompiluje kritické cesty do nativního kódu a minimalizuje overhead.

Google AdInline article slot

Plná podpora RTL jazyků (arabština, hebrejština) a BiDi textu odpovídá specifikacím Unicode včetně 100% úspěšnosti testů. To eliminuje potřebu vlastních řešení pro smíšený LTR/RTL obsah.

Jednotný dynamický atlas písem nahrazuje vícenásobné atlasy z TMP. Automatická komprese snižuje objem písem v buildu 2–3krát. Nástroje umožňují vybírat podmnožiny glyfů a vylučovat nepotřebné znaky.

Rozšířená podpora písem a parsingu

Zavedena podpora Font Family a Variable Fonts. Variable Fonts umožňují dynamicky měnit tloušťku, šířku a další parametry bez více souborů, což řeší problémy s artefakty od designerů.

Google AdInline article slot

Parsing podporuje Markdown, BBCode nebo vlastní parsery. Emodži zahrnují ZWJ kombinace, modyfikátory tónu pleti a nativní systémové emodži – bez vestavování do buildu.

Systém vizuálních modifikátorů eliminuje závislost na materiálech a zajišťuje batching s různými efekty. Lze ho rozšiřovat vlastními moduly, presetami a tagy pro fragmentové styly. Inspector je zjednodušen pro rychlé nastavení.

Klíčové funkce na seznamu:

Google AdInline article slot
  • HarfBuzz + SDF/MSDF + Burst pro rendering.
  • RTL/BiDi s plnou Unicode kompatibilitou.
  • Dynamický atlas s kompresí x2-3.
  • Font Family, Variable Fonts, emodži (ZWJ, skin tone, systémové).
  • Modifikátory bez materiálů, vlastní presety a tagy.
  • Markdown/BBCode parsing.

Text v 3D prostoru a výkon

Nová funkce – text pro World Space mimo Canvas s automatickým batchingem. To je relevantní pro AR/VR a 3D UI, kde Canvas omezuje flexibilitu.

Benchmarky potvrzují nárůst výkonu, zejména ve scénářích s velkým objemem textu. Na Desktopu a WebGL (Unity 6.3+) build probíhá bez problémů, i když WebGL plně nevyužívá Burst.

Testování odhaluje drobné chyby, ale kritické jsou opravovány rychle. Pro produkci je nutná další validace v reálných smyčkách.

Co je důležité

  • Přechod na jednotný atlas a kompresi radikálně snižuje velikost buildu.
  • Plná BiDi/RTL podpora bez vlastních řešení zjednodušuje lokalizaci.
  • Modifikátory a tagy umožňují granulární stylizaci textu bez ztráty batchingu.
  • Variable Fonts a systémové emodži minimalizují assety.
  • World Space text rozšiřuje použití za hranice UI Canvas.

Engin se positionuje jako alternativa k TMP pro projekty s vysokými požadavky na text. Perspektivy závisí na vývoji UI Toolkit, ale současný stack vypadá solidně pro Prod.

— Editorial Team

Advertisement 728x90

Číst dál