# 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.
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.
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:
- 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
Brak komentarzy.