Powrót do strony głównej

UniText 2.0: renderowanie czcionek w Unity

UniText 2.0 aktualizuje silnik tekstowy dla Unity z naciskiem na shaping HarfBuzz, renderowanie SDF/MSDF i Variable Fonts. Obsługa BiDi/RTL, dynamiczny atlas i tekst World Space ułatwiają rozwój skomplikowanych UI. Wersja komercyjna, z otwartą 1.0.

UniText 2.0 w Unity: od shapingu do World Space
Advertisement 728x90

# UniText 2.0: kluczowe ulepszenia w renderingu i obsłudze czcionek dla Unity

UniText 2.0 to pełna przebudowa silnika do obsługi tekstu w Unity. Changelog obejmuje niemal wszystkie komponenty, zachowując zalety wersji 1.0 i dodając nowe funkcje. Nacisk położono na uproszczenie pracy ze stylami, czcionkami i nowoczesnymi standardami Unicode. Wersja open-source 1.0 pozostaje dostępna, natomiast 2.0 jest komercyjna i oferowana przez oficjalną stronę lub Asset Store.

Wersja 2.0 jest skierowana do średniozaawansowanych/seniorowych deweloperów, oferując narzędzia do optymalizacji buildów i renderingu bez kompromisów w wydajności. Obsługa Burst zapewnia przyspieszenie na natywnych platformach, choć na WebGL jest ograniczona aktualnymi możliwościami Unity 6.4.

Technologie renderingu i kształtowania

Silnik wykorzystuje HarfBuzz do kształtowania tekstu — standardowe narzędzie dla złożonych skryptów. Rendering jest realizowany za pomocą SDF i MSDF, co zapewnia ostrość na różnych skalach bez artefaktów. Integracja z Burst kompiluje krytyczne ścieżki do natywnego kodu, minimalizując narzut.

Google AdInline article slot

Pełna obsługa języków RTL (arabski, hebrajski) i tekstu BiDi odpowiada specyfikacjom Unicode, w tym 100% zdawalności testów. To eliminuje potrzebę niestandardowych rozwiązań dla mieszanego contentu LTR/RTL.

Jeden dynamiczny atlas czcionek zastępuje liczne atlasy z TMP. Automatyczna kompresja zmniejsza rozmiar czcionek w buildzie o 2–3 razy. Narzędzia pozwalają na wyodrębnianie podzbiorów glifów, wykluczając niepotrzebne znaki.

Rozszerzona obsługa czcionek i parsowania

Wprowadzono obsługę Font Family i Variable Fonts. Variable Fonts pozwalają na dynamiczną zmianę wagi, szerokości i innych parametrów bez wielu plików, rozwiązując problemy z artefaktami od designerów.

Google AdInline article slot

Parsowanie obsługuje Markdown, BBCode lub niestandardowe analizatory. Emoji obejmują kombinacje ZWJ, modyfikatory skin tone i natywne systemowe emoji — bez wbudowywania w build.

System modyfikatorów wizualnych eliminuje zależność od materiałów, zapewniając batche z różnymi efektami. Rozszerzany jest za pomocą niestandardowych modułów, presetów i tagów dla fragmentowych stylów. Inspektor został uproszczony dla szybkiej konfiguracji.

Kluczowe funkcje w liście:

Google AdInline article slot
  • HarfBuzz + SDF/MSDF + Burst do renderingu.
  • RTL/BiDi z pełną zgodnością z Unicode.
  • Dynamiczny atlas z kompresją x2-3.
  • Font Family, Variable Fonts, emoji (ZWJ, skin tone, systemowe).
  • Modyfikatory bez materiałów, niestandardowe presety i tagi.
  • Parsowanie Markdown/BBCode.

Tekst w przestrzeni 3D i wydajność

Nowa funkcja — tekst dla World Space poza Canvas z automatycznym batchem. To istotne dla AR/VR i 3D UI, gdzie Canvas ogranicza elastyczność.

Benchmarki potwierdzają wzrost wydajności, zwłaszcza w scenariuszach z dużą ilością tekstu. Na Desktop i WebGL (Unity 6.3+) build przechodzi bez problemów, choć Web nie wykorzystuje Burst w pełni.

Testy wykazują drobne błędy, ale krytyczne są szybko naprawiane. Do produkcji wymagana jest dodatkowa walidacja w rzeczywistych pętlach.

Co ważne

  • Przejście na jeden atlas i kompresję radykalnie zmniejsza rozmiar builda.
  • Pełna obsługa BiDi/RTL bez wymyślnych rozwiązań upraszcza lokalizację.
  • Modyfikatory i tagi pozwalają na granularne stylizowanie tekstu bez utraty batchingu.
  • Variable Fonts i systemowe emoji minimalizują assety.
  • Tekst World Space rozszerza zastosowanie poza UI Canvas.

Silnik pozycjonowany jest jako alternatywa dla TMP w projektach z wysokimi wymaganiami wobec tekstu. Perspektywy zależą od rozwoju UI Toolkit, ale obecny stos wygląda solidnie dla Prod.

— Editorial Team

Advertisement 728x90

Czytaj dalej