Does unity WebGL support compressed textures?

Unity WebGL: Teksturer, Kompatibilitet & Mobil

08/05/2026

Rating: 4.52 (14967 votes)

At bringe interaktive oplevelser og spil til internettet har aldrig været mere tilgængeligt, og Unity WebGL står som en brobygger mellem den kraftfulde Unity-udviklingsplatform og den udbredte webbrowser. Denne teknologi gør det muligt for udviklere at publicere deres kreationer direkte til webben, hvor de kan nå et bredt publikum uden behov for særskilte downloads eller installationer. Men som med enhver avanceret teknologi, kommer der specifikke krav og begrænsninger, som er afgørende at forstå for at sikre den bedst mulige brugeroplevelse. Denne artikel dykker ned i de vigtigste aspekter af Unity WebGL, herunder understøttelse af komprimerede teksturer, browserkompatibilitet på tværs af både desktop- og mobile enheder, samt de seneste ændringer vedrørende WebGL 1.

How do I use Unity Web on a mobile device?
On Linux, you might have to install Advanced Audio Coding (AAC) codec support via a package manager (for example, the GStreamer package). The Unity Web platform supports some mobile browsers. To use a Web application on a mobile device, you have a few options: Run the application in your mobile browser.
Indholdsfortegnelse

Understøttelse af Komprimerede Teksturer i Unity WebGL

En af de mest kritiske faktorer for ydeevnen i webbaserede spil er håndteringen af grafikaktiver, især teksturer. Store, ukomprimerede teksturer kan hurtigt føre til lange indlæsningstider og højt hukommelsesforbrug, hvilket forringer brugeroplevelsen markant. Heldigvis understøtter Unity WebGL visse komprimerede teksturformater. Denne understøttelse er afgørende for at optimere filstørrelse og hukommelsesforbrug, hvilket direkte påvirker indlæsningstider og spillets generelle flydende karakter.

Det er vigtigt at bemærke, at Unity WebGL ikke understøtter alle komprimerede teksturformater. Valget af det korrekte format afhænger ofte af den specifikke platform og browser, da forskellige browsere og grafikkort kan have forskellige præferencer og evner. Udviklere opfordres derfor til at konsultere Unitys dokumentation for at finde de anbefalede, standard og understøttede teksturkomprimeringsformater for WebGL-platformen. Korrekt anvendelse af komprimerede teksturer er en af de nemmeste måder at forbedre ydeevnen og reducere den samlede filstørrelse af din WebGL-udgivelse på.

Webbrowser-kompatibilitet for Desktop-platforme

For at sikre, at dit Unity WebGL-indhold kører problemfrit på desktopbrowsere, skal visse betingelser være opfyldt. Unitys WebGL-understøttelse på desktop afhænger af browseren, men de grundlæggende krav er universelle. Hvis din browser opfylder disse krav, er chancerne gode for, at din WebGL-oplevelse bliver optimal.

  • Browseren skal være WebGL 2-kompatibel. Dette er et fundamentalt krav, da Unity ikke længere understøtter WebGL 1 i builds oprettet med indstillingen 'Auto Graphics API'.
  • Browseren skal være HTML5-standardkompatibel.
  • Browseren skal være 64-bit og understøtte WebAssembly. WebAssembly er en binær instruktionsformat for en stakbaseret virtuel maskine, designet til at være et bærbart kompileringsmål for programmeringssprog og muliggøre udrulning af højtydende applikationer på webben.

Her er en oversigt over de desktopbrowsere, som Unity WebGL understøtter:

Desktop BrowserUnderstøttede PlatformeBemærkninger
Google ChromeWindows, macOS, LinuxMeget stabil og anbefalet.
Mozilla FirefoxWindows, macOS, LinuxGod ydeevne og bred understøttelse.
Apple SafarimacOSKræver Safari 15 eller nyere for WebGL 2. Understøtter ikke IndexedDB for indhold i iFrames.
Microsoft EdgeWindows, macOS, LinuxUnderstøtter den seneste Chromium-baserede version.

Vigtige noter vedrørende desktop-kompatibilitet:

  • Apple Safari understøtter ikke WebGL 2 i versioner før Safari 15. Dette er en kritisk begrænsning for brugere af ældre Safari-versioner.
  • På Linux skal du muligvis installere Advanced Audio Coding (AAC) codec-understøttelse via en pakkehåndtering (f.eks. GStreamer-pakken) for at sikre korrekt lydafspilning.

Afskaffelse af WebGL 1

Fra Unity 2022.1 er WebGL 1 Graphics API ikke længere inkluderet i 'Auto Graphics API'-indstillingen. Dette betyder, at Unity som standard vil forsøge at bruge WebGL 2, hvilket giver bedre ydeevne og adgang til flere grafiske funktioner. Selvom WebGL 1 er blevet udfaset fra standardindstillingerne, er det stadig muligt at tilføje understøttelse for det i dit projekt, hvis det er absolut nødvendigt for at opnå bredere kompatibilitet med ældre systemer. Dog frarådes dette generelt, da det kan begrænse de grafiske muligheder og ydeevnen.

For at tilføje WebGL 1 (forældet) understøttelse manuelt:

  1. Åbn Player Settings i Unity.
  2. Naviger til sektionen 'Other Settings'.
  3. Deaktiver 'Auto Graphics API'-indstillingen.
  4. Tilføj eksplicit WebGL 1 (Deprecated) til listen over Graphics API'er.

Det er værd at bemærke, at GPU-blokeringslister stadig gælder. Ældre grafikkort understøtter muligvis ikke WebGL, uanset hvilken version du prøver at bruge. Dette er en hardwarebegrænsning, som en softwareindstilling ikke kan omgå. Udviklere bør være opmærksomme på, at en vis procentdel af potentielle brugere simpelthen ikke vil kunne køre deres WebGL-indhold på grund af forældet hardware.

Webbrowser-kompatibilitet for Mobile Enheder

Mens Unity WebGL historisk set har haft begrænset understøttelse af mobile enheder, har der været en positiv udvikling. Tidligere blev det ofte sagt, at Unity WebGL ikke understøttede mobile enheder på grund af begrænset processorkraft og hukommelse. Selvom det stadig er sandt, at mange nuværende mobile enheder ikke er kraftige nok eller har tilstrækkelig hukommelse til at understøtte komplekst Unity WebGL-indhold, har den seneste udvikling forbedret situationen markant. Unitys Web-platform understøtter nu visse mobile browsere, især på nyere, mere kraftfulde high-end enheder.

For at bruge en webapplikation på en mobil enhed har du et par muligheder:

  • Kør applikationen direkte i din mobile browser. Dette er den mest ligetil metode, forudsat at browseren er kompatibel.
  • Brug WebView til at indlejre applikationen i native apps. Dette giver dig mulighed for at pakke din WebGL-oplevelse ind i en traditionel mobilapp, hvilket kan give en mere integreret brugeroplevelse.
  • Brug en Progressive Web App (PWA) skabelon. PWA'er er webapplikationer, der bruger visse browserfunktioner til at skabe en brugeroplevelse på højde med en native app, herunder offlinefunktionalitet og muligheden for at 'installere' appen på startskærmen.

Her er en oversigt over de mobile browsere, som Unitys Web-platform understøtter:

Mobil BrowserUnderstøttede PlatformeBemærkninger
iOS SafariiOS 15 og nyereSørg for at bruge de nyeste browserversioner for den bedste oplevelse.
iOS ChromeiOS 58 og nyereBaseret på WebKit, ligesom Safari på iOS.
Android ChromeAndroid 58 og nyereMeget udbredt og generelt god ydeevne.

Det er afgørende at bruge de seneste browserversioner for den bedste oplevelse på mobile enheder. Ældre versioner kan have problemer, der påvirker ydeevnen eller helt forhindrer Unity-indhold i at køre. Derudover er optimering af dit Unity-projekt til mobile enheder endnu vigtigere, når du målretter mod WebGL, da mobile enheder har mere begrænsede ressourcer end de fleste desktops.

Optimering og Overvejelser for WebGL

Ud over kompatibilitet og teksturkomprimering er der flere overvejelser, der kan hjælpe med at optimere din Unity WebGL-oplevelse. WebGL-miljøet er unikt, da det kører i en browser-sandkasse og er underlagt browserens ressourcebegrænsninger. Dette betyder, at traditionelle optimeringsmetoder skal anvendes med endnu større omhu.

Does unity WebGL support compressed textures?
Unity WebGL supports some compressed texture formats A file format for handling textures during real-time rendering by 3D graphics hardware, such as a graphics card or mobile device. More info See in Glossary.
  • Filstørrelse: Jo mindre din build er, jo hurtigere indlæses den. Brug optimal teksturkomprimering, fjern ubrugte aktiver (tree shaking), og overvej at opdele store applikationer i mindre, indlæsbare segmenter.
  • Hukommelsesforbrug: WebGL opererer inden for browserens hukommelsesgrænser. Minimer antallet af objekter, reducer tekstur- og mesh-størrelser, og vær opmærksom på hukommelseslækager. Dette er især kritisk på mobile enheder, hvor hukommelsen er yderst begrænset.
  • Ydeevne: Reducer antallet af draw calls, brug effektive shaders, og begræns kompleksiteten af din scene. Profilering af din applikation i en webbrowser er afgørende for at identificere flaskehalse.
  • Brugeroplevelse: Overvej indlæsningsskærme for at informere brugeren om fremskridt, især ved større builds. En god indlæsningsoplevelse kan forhindre frustration og frafald.

At forstå disse nuancer er nøglen til at levere en problemfri og engagerende oplevelse for dine brugere, uanset om de sidder ved en desktop eller er på farten med en mobil enhed.

Ofte Stillede Spørgsmål (OSS) om Unity WebGL

Kan jeg køre Unity WebGL på min telefon?

Ja, men med visse begrænsninger og under specifikke betingelser. Mens ældre informationer ofte angav begrænset understøttelse, understøtter Unitys Web-platform nu officielt udvalgte mobile browsere som iOS Safari (15+), iOS Chrome (58+) og Android Chrome (58+). Det er dog vigtigt, at din mobile enhed er relativt kraftfuld og har tilstrækkelig hukommelse, da komplekse Unity WebGL-oplevelser stadig kan være meget ressourcekrævende for mobile enheder. Brug altid de nyeste browserversioner for den bedste ydeevne.

Understøtter Unity WebGL alle browsere?

Nej, Unity WebGL understøtter ikke alle browsere. Den kræver browsere, der er WebGL 2-kompatible, HTML5-standardkompatible, 64-bit og understøtter WebAssembly. De primære understøttede desktopbrowsere inkluderer Google Chrome, Mozilla Firefox, Apple Safari (version 15 og nyere) og Microsoft Edge (Chromium-baseret). For mobile enheder er understøttelsen mere begrænset til specifikke versioner af Safari og Chrome på iOS og Android.

Hvad betyder 'komprimerede teksturer' i Unity WebGL-kontekst?

Komprimerede teksturer refererer til grafikfiler (billeder), der er blevet behandlet for at reducere deres filstørrelse og hukommelsesfodaftryk, uden at det går ud over den visuelle kvalitet i en mærkbar grad. I Unity WebGL er dette afgørende for at optimere indlæsningstider og reducere den samlede applikationsstørrelse. Unity WebGL understøtter visse komprimerede teksturformater, og valget af det korrekte format kan have en betydelig indflydelse på ydeevnen. Det anbefales at konsultere Unitys dokumentation for at finde de mest effektive formater for din specifikke udgivelse.

Hvorfor er WebGL 1 udfaset fra 'Auto Graphics API'-listen i Unity?

WebGL 1 er blevet udfaset fra 'Auto Graphics API'-listen i Unity 2022.1 og nyere versioner, primært fordi WebGL 2 tilbyder betydelige forbedringer i ydeevne og funktionalitet. WebGL 2 giver adgang til et mere moderne sæt grafiske API'er, der ligner dem fundet i moderne desktop-grafik-API'er som OpenGL ES 3.0. Ved at fokusere på WebGL 2 kan Unity-udviklere udnytte mere avancerede renderingsteknikker og opnå bedre visuel kvalitet og ydeevne. Selvom det stadig er muligt manuelt at aktivere WebGL 1 (som forældet), er det generelt bedst at målrette mod WebGL 2 for at drage fordel af de nyeste optimeringer og funktioner.

Hvad er WebAssembly, og hvorfor er det vigtigt for Unity WebGL?

WebAssembly (Wasm) er et binært instruktionsformat for en stakbaseret virtuel maskine. Det er designet som et bærbart kompileringsmål for programmeringssprog (som C, C++ og Rust) og muliggør udrulning af højtydende applikationer på webben. For Unity WebGL er WebAssembly afgørende, fordi det tillader Unity-motoren at køre med næsten native hastighed i en webbrowser. Dette er en stor forbedring i forhold til tidligere teknologier, der ofte krævede JavaScript-kompilering, hvilket kunne være langsommere. WebAssembly muliggør komplekse 3D-applikationer og spil at køre flydende direkte i browseren, hvilket er fundamentet for Unity WebGL's ydeevne.

Hvad er de største udfordringer ved at publicere et Unity-projekt til WebGL?

De største udfordringer inkluderer optimering af filstørrelse for hurtig indlæsning, styring af hukommelsesforbrug, da browsere har begrænsede ressourcer, og opnåelse af acceptabel ydeevne på tværs af et bredt spektrum af enheder, især mobile. Derudover kan der være specifikke browserbegrænsninger (som Safari's IndexedDB-problem i iFrames) og behovet for at sikre, at brugerens browser opfylder de nødvendige tekniske krav (WebGL 2, WebAssembly, 64-bit). Grundig test og optimering er nøglen til succes.

At mestre Unity WebGL kræver en dyb forståelse af både Unity-platformen og webmiljøets specifikke krav og begrænsninger. Ved at fokusere på optimal brug af komprimerede teksturer, forstå browserkompatibilitet og løbende optimere dit projekt, kan du låse op for det fulde potentiale i at levere spændende interaktive oplevelser direkte til millioner af brugere via deres webbrowsere.

Hvis du vil læse andre artikler, der ligner Unity WebGL: Teksturer, Kompatibilitet & Mobil, kan du besøge kategorien Teknologi.

Go up