10/04/2024
I spiludvikling med Unity er det essentielt at forstå, hvordan man håndterer forskellige skærmopløsninger. Dette sikrer, at dit spil ser godt ud og fungerer optimalt på tværs af et bredt udvalg af enheder, fra små smartphones til store tablets. En af de mest almindelige udfordringer er at få brugergrænsefladen (UI) og spilverdenen til at skalere korrekt. Dette er især vigtigt, når man designer til mobile platforme, hvor variationen i skærmstørrelser og -formater er enorm. Denne artikel vil guide dig igennem de grundlæggende principper og praktiske metoder til at opnå en fleksibel og responsiv UI-design i Unity.

Forståelse af Referenceopløsninger
Når du arbejder med Unitys UI-system, er det vigtigt at vælge en referenceopløsning. Dette er den opløsning, som dit UI designes ud fra, og som Unity bruger som et udgangspunkt for skalering. Selvom der ikke er én universel korrekt referenceopløsning, er det ofte en god idé at undersøge, hvilke skærmopløsninger der er mest almindelige blandt din målgruppe. En anden strategi er at vælge en "næste-generations" opløsning, altså en opløsning der sandsynligvis vil blive dominerende i fremtiden. En populær og ofte anvendt referenceopløsning er 1080 x 2400 pixels, da den repræsenterer en moderne standard for mange smartphones.
Når du har valgt din referenceopløsning, kan du konfigurere Unitys Canvas Scaler komponent til at håndtere skaleringen. Ved at sætte UI Scale Mode til 'Scale With Screen Size' og indtaste din valgte referenceopløsning (f.eks. 1080 x 2400), vil Unity automatisk skalere UI-elementer baseret på skærmens størrelse. Egenskaben 'Match' styrer, hvordan skaleringen prioriterer bredde eller højde. En værdi på 0.5 giver en balance mellem begge dimensioner, hvilket ofte resulterer i et godt visuelt resultat på tværs af forskellige skærmformater.
| Opløsning | Typisk Anvendelse |
|---|---|
| 1080 x 2400 | Moderne smartphones (standard) |
| 1920 x 1080 | Full HD skærme (tablets, PC) |
| 640 x 960 | Ældre smartphones (Portrait) |
| 960 x 640 | Ældre smartphones (Landscape) |
| 320 x 480 | Ældre smartphones (SD Portrait) |
| 480 x 320 | Ældre smartphones (SD Landscape) |
Håndtering af "Objekter" og Verdensrummet
Udover UI-elementer, skal du også overveje, hvordan dine 2D- eller 3D-objekter i spillets verden skal skalere. For at håndtere både UI og objekter effektivt, kan du stadig bruge Canvas Scaler med 'Scale With Screen Size'. I stedet for at bruge en 'Match' værdi på 0.5, kan du vælge enten bredde (0) eller højde (1). Den valgte dimension vil forblive konstant på tværs af alle skærmstørrelser. For portrætlabyrenheder er det ofte bredden, der vælges, men dette afhænger af dit specifikke design. Den anden dimension vil så skalere dynamisk med skærmstørrelsen.
Det er afgørende at teste dit spil på forskellige enheder og især at simulere de mindste og største aspect ratios, du ønsker at understøtte. Unitys Device Simulator er et uvurderligt værktøj til dette formål. Ved at bruge den kan du justere dit UI og dine objekter, så de ser korrekte ud på disse ekstreme forhold. Sørg for, at dine objekter i verden passer ind på selv den mindste skærm. Baggrunde kan kræve særlig opmærksomhed; de skal muligvis gøres større for at dække de bredeste skærme, eller de kan flyttes til UI-laget for bedre skalering.

Ankre: Nøglen til Responsivitet
Ankre er en fundamental del af Unitys UI-system, der lader dig definere, hvordan UI-elementer skal positioneres og skaleres i forhold til deres forældreramme. Som standard er UI-elementer centreret, hvilket betyder, at de bevarer en konstant afstand fra midten. Dette kan føre til problemer, når skærmens opløsning eller aspect ratio ændres, idet elementerne kan bevæge sig uden for skærmen.
For at løse dette, bør du bruge ankre til at binde UI-elementer til specifikke hjørner eller kanter af skærmen. For eksempel kan en knap i øverste venstre hjørne ankeres til det øverste venstre hjørne af dens forælder. Dette gøres nemmest, mens den nuværende skærmopløsning i Game View er den, dit layout oprindeligt er designet til. Når ankerne er sat korrekt, vil elementerne følge skærmens kanter, når opløsningen ændres. Det er dog vigtigt at bemærke, at uden yderligere skalering vil elementerne beholde deres oprindelige størrelse i pixels. Dette kan betyde, at de fylder en større eller mindre del af skærmen, afhængigt af opløsningen.
Canvas Scaler: Finjustering af Skalering
Canvas Scaler komponenten, som tilføjes til et rod-Canvas, er afgørende for at styre, hvordan UI-elementer skaleres. Når 'Scale With Screen Size' er valgt, og en referenceopløsning er sat, vil Canvas Scaler beregne en skaleringsfaktor. Denne faktor anvendes på alle UI-elementer under Canvas, hvilket sikrer, at de alle skalerer proportionalt.
Som nævnt tidligere, spiller 'Match' egenskaben en central rolle. Ved at sætte 'Match' til 0.5, sikrer du en balance mellem skalering baseret på bredde og højde. Dette er ofte ideelt for at bevare proportionerne på tværs af forskellige aspect ratios. Hvis du derimod vælger 0 (bredde) eller 1 (højde), vil den valgte dimension forblive uændret, mens den anden tilpasser sig. Dette kan være nyttigt i specifikke designscenarier, men kræver omhyggelig testning for at undgå uønskede visuelle effekter.

Hvornår Skalerer Ikke Perfekt?
Det er vigtigt at forstå, hvad der sker, når den aktuelle skærmopløsning afviger fra referenceopløsningen. Unitys Canvas Scaler forsøger at kompensere ved at skalere UI-elementerne op eller ned. Hvis din referenceopløsning er 1080 x 2400, og enheden har en opløsning på 720 x 1280, vil Unity skalere UI'en ned for at passe til den mindre skærm. Omvendt, hvis enheden har en højere opløsning, vil UI'en skaleres op. Problemer kan opstå, hvis aspect ratioen er meget forskellig fra referenceopløsningen. Her kan 'Match' indstillingen hjælpe med at finde den bedste balance. Uden den rette indstilling kan elementer blive strakt eller klemt, hvilket kompromitterer det visuelle udtryk.
Avancerede Teknikker: Multiple Layouts
I nogle tilfælde, især ved komplekse projekter, der skal understøtte meget forskellige enheder (f.eks. smartphones i portræt og tablets i landskab med markant forskellige layoutkrav), kan det være nødvendigt at implementere multiple layouts. Dette indebærer at skabe separate UI-layouts, der er optimeret til specifikke enhedstyper eller orienteringer. Du kan derefter skifte mellem disse layouts dynamisk i dit spil.
Selvom dette kan tilføje kompleksitet til udviklingsprocessen, giver det ultimativ kontrol over brugeroplevelsen. Tidlige versioner af Unity udviklere har endda skabt værktøjer til at håndtere multiple layouts som separate scener, hvilket giver en modulær tilgang. Selvom disse værktøjer måske kræver en opdatering, kan deres kode tjene som reference for at bygge dit eget system.
Ofte Stillede Spørgsmål
Q: Er Unity baseret på en 1080 x 2400 opløsning?
A: Nej, Unity er ikke *baseret* på en specifik opløsning, men du kan vælge 1080 x 2400 som din referenceopløsning i Canvas Scaler komponenten for at styre UI-skaleringen. Det er en almindelig og god standard for mange moderne mobile enheder.

Q: Hvad sker der, hvis skærmopløsningen ikke er den samme som referenceopløsningen?
A: Hvis skærmopløsningen afviger fra referenceopløsningen, vil Unitys Canvas Scaler automatisk justere størrelsen på UI-elementerne for at forsøge at bevare det tilsigtede udseende. Indstillingen 'Match' i Canvas Scaler hjælper med at styre, hvordan denne justering sker for at balancere bredde og højde.
Q: Hvor mange skærmopløsninger har en telefon?
A: Der findes et stort antal forskellige skærmopløsninger på tværs af telefonmodeller. Det er derfor vigtigt at designe din UI med fleksibilitet for øje, så den kan tilpasse sig dette brede spektrum af opløsninger og aspect ratios.
Ved at anvende disse principper for referenceopløsninger, ankre og Canvas Scaler, kan du skabe et UI, der ikke kun ser godt ud, men også fungerer fejlfrit på tværs af det voksende landskab af mobile enheder. Husk altid at teste grundigt på forskellige enheder og opløsninger for at sikre den bedst mulige brugeroplevelse.
Hvis du vil læse andre artikler, der ligner Unity Skærmopløsninger: En Guide, kan du besøge kategorien Teknologi.
