Support

Vanliga frågor

Raka svar om build-storlek, fonter, glyfatlasen och prestanda i runtime — destillerade ur verkliga frågor från utvecklare.

Build-storlek och distribution

Sväller UniText upp min build-storlek? Vad hamnar egentligen i bygget?

Byggstorleken beror på plattform, arkitekturer, stripping och komprimering. Glyfatlaser skapas vid körning. Teckensnittsassets innehåller egna data; ursprungliga .ttf och .otf är editorreferenser. Native-spelare läser en diskcache, WebGL bäddar in data.

Måste jag behålla och leverera .ttf-filerna?

Teckensnittsassets innehåller egna data; ursprungliga .ttf och .otf är editorreferenser. Native-spelare läser en diskcache, WebGL bäddar in data.

Måste jag ens importera .ttf-filen till mitt projekt?

Nej. Du kan bygga en UniTextFont från en .ttf var som helst på din disk via UniText-verktygsfönstret (fildialogen läser byten direkt). Att importera fonten till projektet är valfritt.

Hur mycket lägger UniText egentligen till i en tom build?

Byggstorleken beror på plattform, arkitekturer, stripping och komprimering. Glyfatlaser skapas vid körning.

Hur står sig UniText mot TextMesh Pro för CJK eller stora fonter?

Systemteckensnitt väljs automatiskt. Egna filer är valfria på dator och mobil; WebGL använder tilldelade teckensnitt. Nya glyfer kräver rastrering och uppladdning. Cachade glyfer återanvänds tills de ändras eller tas bort.

Kan jag ladda fonter dynamiskt från en server eller CDN?

Ja — det ligger på utvecklarens sida, och UniText står inte i vägen. Ladda ner fontens bytes med din egen kod (UnityWebRequest) och bygg en UniTextFont av dem i runtime via CreateFontAsset(byte[]). För att trimma ner en font till bara de tecken du behöver (subsetting) använder du UniTexts build-time-verktyg. Det finns ingen inbyggd CDN-autoladdare i paketet — det är medvetet projektets ansvar, inte motorns.

Fonter och systemfonter

Kan UniText använda operativsystemets systemfont? Vad kostar det i minne och uppstart?

Systemteckensnitt väljs automatiskt. Egna filer är valfria på dator och mobil; WebGL använder tilldelade teckensnitt.

Stöder WebGL systemfonter?

Systemteckensnitt väljs automatiskt. Egna filer är valfria på dator och mobil; WebGL använder tilldelade teckensnitt.

Font Memory Mapping

Stora teckensnittsfiler läses från disk vid behov utan en fullständig kopia i hanterat minne. Oanvända teckensnitt förblir komprimerade. WebGL och inbäddade editorteckensnitt använder minnesdata. Filbaserade teckensnitt använder minnesmappning.

Pixelperfekta teckensnitt

Skarpa pixlar, automatisk rutnätsdetektering och anpassade effekter och animationer. Vektor- och bitmappsteckensnitt delar stilsystem. Heltalsmultiplar av Pixel Grid blir pixelperfekta. Snap To Pixel Grid riktar även in effekter och animation; avstängning tillåter subpixelrörelse.

Glyfatlas — SDF Detail och Tile Size

Vad gör egentligen ”SDF Detail” och ”Tile Size Offset”?

Glyfer ligger i tiles i tre storlekar — 64, 128, 256 — och storleken väljs utifrån konturkomplexitet (många segment → 128/256, en enkel kontur → 64). • SDF Detail är en multiplikator på komplexitetsuppskattningen. Höj den så är det mer sannolikt att en redan icke-trivial glyf flyttas upp till en större tile. (En genuint enkel form stannar på 64 — multiplikatorn påverkar bara glyfer över tröskeln.) • Tile Size Offset är ett hårt steg längs storleksstegen (vald 64 + offset 1 → 128; intervall −2..+2).

Vilken av de två bör jag prioritera för prestanda?

Ingen av dem för sig — båda avgör bara den slutliga tile-storleken, och kostnaden bestäms enbart av den storleken. Två kombinationer som landar på samma tile-storlek kostar exakt lika mycket. Sikta på den minsta tile-storlek som fortfarande ger acceptabel kvalitet.

Runtime-prestanda

När rastrerar UniText glyfer? Kopierar det minne varje frame?

Nya glyfer kräver rastrering och uppladdning. Cachade glyfer återanvänds tills de ändras eller tas bort.

Varför uppstår en kort hackning när mycket ny text dyker upp på en gång?

Nya glyfer kräver rastrering och uppladdning. Cachade glyfer återanvänds tills de ändras eller tas bort.

Jag ser inget UniText-jobb i Profilern — fungerar multitrådning verkligen?

Core samordnar textarbete före rendering. Arbetstrådar och Burst hanterar stora uppgifter; lokala ändringar påverkar berörda steg.

Skadar MonoBehaviour.Update() prestandan? Behöver man en enda UniTextManager?

Core samordnar textarbete före rendering. Arbetstrådar och Burst hanterar stora uppgifter; lokala ändringar påverkar berörda steg.

Support och diskussion

Discord är huvudkanalen för frågor, hjälp och diskussion. Felrapporter och funktionsförslag hör hemma i det offentliga ärendesystemet.

Support och diskussion: [email protected]