Wsparcie

Najczęściej zadawane pytania

Konkretne odpowiedzi na temat rozmiaru buildu, czcionek, atlasu glifów i wydajności w runtime — wydestylowane z prawdziwych pytań deweloperów.

Rozmiar buildu i dystrybucja

Czy UniText rozdmuchuje rozmiar mojego buildu? Co właściwie trafia do buildu?

Rozmiar zależy od platformy, architektur, strippingu i kompresji. Atlasy glifów powstają podczas działania. Zasoby czcionek zawierają własne dane; oryginalne .ttf i .otf są odwołaniami edytora. Aplikacje natywne czytają pamięć podręczną na dysku, WebGL osadza dane.

Czy muszę przechowywać i dostarczać pliki .ttf?

Zasoby czcionek zawierają własne dane; oryginalne .ttf i .otf są odwołaniami edytora. Aplikacje natywne czytają pamięć podręczną na dysku, WebGL osadza dane.

Czy w ogóle muszę importować .ttf do swojego projektu?

Nie. Możesz zbudować UniTextFont z pliku .ttf znajdującego się w dowolnym miejscu na dysku, korzystając z okna narzędzia UniText (okno wyboru pliku czyta bajty bezpośrednio). Zaimportowanie czcionki do projektu jest opcjonalne.

Ile UniText faktycznie dodaje do pustego buildu?

Rozmiar zależy od platformy, architektur, strippingu i kompresji. Atlasy glifów powstają podczas działania.

Jak UniText wypada w porównaniu z TextMesh Pro przy CJK lub dużych czcionkach?

Automatyczny wybór czcionek systemowych. Własne pliki są opcjonalne na komputerach i urządzeniach mobilnych; WebGL używa przypisanych czcionek. Nowe glify wymagają rasteryzacji i przesłania. Glify w pamięci podręcznej są używane do unieważnienia lub usunięcia.

Czy mogę ładować czcionki dynamicznie z serwera lub CDN?

Tak — to leży po stronie dewelopera, a UniText nie staje na przeszkodzie. Pobierz bajty czcionki własnym kodem (UnityWebRequest) i zbuduj z nich UniTextFont w runtime przez CreateFontAsset(byte[]). Aby okroić czcionkę do samych potrzebnych znaków (subsetting), użyj narzędzia UniText działającego na etapie budowania. W paczce nie ma wbudowanego auto-ładowacza CDN — to celowo odpowiedzialność projektu, nie silnika.

Czcionki i czcionki systemowe

Czy UniText może używać czcionki systemowej OS? Ile to kosztuje w pamięci i przy starcie?

Automatyczny wybór czcionek systemowych. Własne pliki są opcjonalne na komputerach i urządzeniach mobilnych; WebGL używa przypisanych czcionek.

Czy WebGL obsługuje czcionki systemowe?

Automatyczny wybór czcionek systemowych. Własne pliki są opcjonalne na komputerach i urządzeniach mobilnych; WebGL używa przypisanych czcionek.

Font Memory Mapping

Duże pliki czcionek są odczytywane z dysku na żądanie, bez pełnej kopii w pamięci zarządzanej. Nieużywane czcionki pozostają skompresowane. WebGL i osadzone czcionki edytora używają danych w pamięci. Czcionki plikowe korzystają z mapowania pamięci.

Prawdziwe czcionki pikselowe

Ostre piksele, automatyczne wykrywanie siatki oraz dopasowane efekty i animacje. Wektorowe czcionki pikselowe i bitmapowe dzielą system stylów. Całkowite wielokrotności Pixel Grid są dokładne co do piksela. Snap To Pixel Grid wyrównuje także efekty i animacje; wyłączenie pozwala na ruch subpikselowy.

Atlas glifów — SDF Detail i Tile Size

Co właściwie robią „SDF Detail” i „Tile Size Offset”?

Glify mieszczą się w kafelkach trzech rozmiarów — 64, 128, 256 — a rozmiar dobierany jest na podstawie złożoności konturu (wiele segmentów → 128/256, prosty kontur → 64). • SDF Detail to mnożnik szacowanej złożoności. Podnieś go, a i tak już nietrywialny glif z większym prawdopodobieństwem przeskoczy do większego kafelka. (Naprawdę prosty kształt zostaje przy 64 — mnożnik wpływa tylko na glify powyżej progu.) • Tile Size Offset to twardy krok po drabinie rozmiarów (wybrany 64 + offset 1 → 128; zakres −2..+2).

Który z tych dwóch powinienem traktować priorytetowo pod kątem wydajności?

Żaden w oderwaniu — oba jedynie decydują o końcowym rozmiarze kafelka, a koszt wyznacza wyłącznie ten rozmiar. Dwie kombinacje, które sprowadzają się do tego samego rozmiaru kafelka, kosztują dokładnie tyle samo. Celuj w najmniejszy rozmiar kafelka, który wciąż daje akceptowalną jakość.

Wydajność w runtime

Kiedy UniText rasteryzuje glify? Czy kopiuje pamięć w każdej klatce?

Nowe glify wymagają rasteryzacji i przesłania. Glify w pamięci podręcznej są używane do unieważnienia lub usunięcia.

Skąd bierze się krótkie zacięcie, gdy naraz pojawia się dużo nowego tekstu?

Nowe glify wymagają rasteryzacji i przesłania. Glify w pamięci podręcznej są używane do unieważnienia lub usunięcia.

Nie widzę zadania UniText w Profilerze — czy wielowątkowość faktycznie działa?

Core koordynuje tekst przed renderowaniem. Wątki robocze i Burst obsługują duże zadania; lokalne zmiany unieważniają odpowiednie etapy.

Czy MonoBehaviour.Update() szkodzi wydajności? Czy potrzebny jest jeden UniTextManager?

Core koordynuje tekst przed renderowaniem. Wątki robocze i Burst obsługują duże zadania; lokalne zmiany unieważniają odpowiednie etapy.

Pomoc i dyskusje

Discord jest głównym kanałem pytań, pomocy i dyskusji. Błędy i propozycje nowych funkcji zgłaszaj w publicznym systemie zgłoszeń.

Pomoc i dyskusje: [email protected]