01/10/2025
Unity iOS Player Indstillinger: En Dybdegående Guide
Unity er en af de mest populære spiludviklingsmotorer på markedet, og dens evne til at eksportere til en bred vifte af platforme, herunder iOS, gør den til et foretrukket valg for mange udviklere. En afgørende del af at skabe en succesfuld iOS-app i Unity er at forstå og konfigurere de specifikke Player-indstillinger. Disse indstillinger giver dig kontrol over alt fra appens udseende på App Store til dens ydeevne på enheden. Denne guide vil tage dig igennem de vigtigste iOS Player-indstillinger i Unity, så du kan finjustere din app til perfektion.

- Ikoner: Din Apps Visuelle Identitet
- Opløsning og Præsentation: Skærmens Udseende
- Brugerdefinerede Storyboards og Launch Screens
- Debugging og Fejlrapportering
- Andre Vigtige Indstillinger
- Ofte Stillede Spørgsmål (FAQ)
- Hvad er den vigtigste indstilling for at optimere ydeevnen på iOS?
- Hvordan tilføjer jeg brugerdefinerede ikoner til min iOS-app i Unity?
- Kan jeg bruge forskellige startskærme til forskellige enheder?
- Hvad er IL2CPP, og hvorfor er det standard for iOS?
- Hvordan kan jeg fejlfinde crashes i min iOS-app bygget med Unity?
Ikoner: Din Apps Visuelle Identitet
App-ikoner er det første, brugerne ser, og de spiller en vigtig rolle i at skabe et positivt førstehåndsindtryk. I Unitys iOS Player-indstillinger kan du tilpasse ikoner for forskellige iOS-enheder (iPhone og iPad). Disse indstillinger giver dig mulighed for at uploade og tildele brugerdefinerede ikoner til forskellige placeringer:
| Ikon Type | Hvor det vises |
|---|---|
| Applikationsikoner | Hovedikoner for din app |
| Spotlight ikoner | Spotlight søgeresultater |
| Indstillingsikoner | Enhedens hovedindstillingsside |
| Notifikationsikoner | Notifikationer sendt fra din app |
| Marketingikoner | App Store |
Det er vigtigt at bemærke, at alle uploadede ikoner skal være af typen Texture 2D. Hvis et ikon mangler, vil Unity skalere det tilgængelige ikon med den nærmeste størrelse, med præference for større teksturer. At sikre korrekte ikonstørrelser og -formater er essentielt for et professionelt udseende.
Opløsning og Præsentation: Skærmens Udseende
Sektionen "Resolution and Presentation" giver dig mulighed for at styre, hvordan din app vises på skærmen. Her kan du finjustere opløsning, skærmretning og statuslinjeadfærd.
Opløsningsskalering
Med "Resolution Scaling Mode" kan du styre, hvordan din apps opløsning skalerer i forhold til enhedens native skærmopløsning. Valgmulighederne inkluderer:
- Disabled: Ingen skalering finder sted, og appen renderer til den native skærmopløsning.
- FixedDPI: Tillader dig at sætte en mål-DPI. Unity nedskalerer spilskærmen for at matche denne indstilling, hvis enhedens native skærm-DPI er højere. Dette er en effektiv metode til at optimere ydelse og batterilevetid.
Når du vælger FixedDPI, dukker "Target DPI"-egenskaben op, hvor du kan indstille den ønskede DPI. Unity beregner skalaen baseret på en formel, der involverer din mål-DPI, en faktor fra "Resolution Scaling Fixed DPI Factor" i kvalitetsindstillingerne og enhedens skærm-DPI.
Orientering
"Default Orientation"-indstillingen lader dig vælge appens skærmretning. "Auto Rotation" er standardindstillingen, som får skærmen til at rotere med enheden. Du kan også vælge faste retninger som "Portrait", "Portrait Upside Down", "Landscape Left" og "Landscape Right". Hver af disse faste retninger bestemmer placeringen af hjemknappen på skærmen.
Hvis "Auto Rotation" er valgt, kan du aktivere "Animated Autorotation" for en glattere overgang, når enheden roteres. Du kan også begrænse de tilladte orienteringer via "Allowed Orientations for Auto Rotation"-indstillingen, hvilket er nyttigt til at låse en app til f.eks. landskabstilhæng. Disse indstillinger gælder både for iOS og Android.
Multitasking Support
"Requires Fullscreen"-indstillingen sikrer, at din app kører i fuldskærmstilstand, hvilket er vigtigt for en uafbrudt brugeroplevelse.
Statuslinje
I "Status Bar"-sektionen kan du styre, om statuslinjen skal skjules ved appens start, og hvilken stil den skal have (Default eller Light). Du kan også vælge at deaktivere dybde- og stencilbuffere, hvilket kan have indflydelse på renderingens kompleksitet. "Render Over Native UI"-indstillingen tillader din app at blive vist oven på den native iOS- eller Android-brugergrænseflade.
Splash Image
Splash-billedet er det første billede, brugerne ser, når de åbner din app. Du kan tilpasse dette billede for forskellige iOS-enheder. "Virtual Reality Splash Image" giver dig mulighed for at vælge et brugerdefineret splash-billede specifikt til VR-displays.
Brugerdefinerede Storyboards og Launch Screens
Unity tilbyder fleksibilitet i, hvordan din apps startskærm implementeres. Du kan vælge at bruge brugerdefinerede storyboards, som oprettes i Xcode og kopieres til dit Unity-projekt. Dette giver avanceret kontrol over startoplevelsen.
Hvis du ikke bruger brugerdefinerede storyboards, kan du benytte dig af Unitys indbyggede launch screens. Disse kan konfigureres på flere måder:
| Launch Screen Type | Beskrivelse |
|---|---|
| Default | En ensfarvet blå-sort baggrund, der matcher Unitys standard splash screen. |
| None | Apple understøtter ikke længere "Launch Images". Denne mulighed er for bagudkompatibilitet. |
| Image and background (relative size) | Viser et billede centreret på skærmen, med resterende plads fyldt med en ensfarvet baggrund. Du kan vælge billeder til portræt- og landskabstilstand samt en baggrundsfarve og et "Fill percentage" for billedets størrelse. |
| Image and background (constant size) | Ligner ovenstående, men billedstørrelsen specificeres i punkter (points) i stedet for procent. |
| Custom XIB | Tillader dig at vælge en brugerdefineret XIB-fil som loading-skærm. |
| Custom Storyboard | Tillader dig at vælge en brugerdefineret Storyboard-fil som loading-skærm. |
Det er vigtigt at være opmærksom på begrænsningerne ved launch screens, især for iPads, hvor forskellige enhedsorienteringer kan være udfordrende at håndtere. Siden iOS 13 er launch screens dog mere kompatible med appens indstillinger for orientering og statuslinje.
Debugging og Fejlrapportering
Unitys iOS Player-indstillinger tilbyder også værktøjer til debugging og fejlrapportering, som er afgørende for at sikre en stabil app.
- Enable Internal Profiler (Deprecated): Selvom denne funktion er forældet og erstattet af "Profiler"-vinduet, kunne den tidligere indsamle app-ydelsesdata.
- On .Net UnhandledException: Her kan du vælge, hvordan din app skal reagere på ubehandlede .NET-undtagelser: "Crash" for at generere en fejlrapport, eller "Silent Exit" for at afslutte appen uden rapport.
- Log Obj-C Uncaught Exceptions: Aktiver denne for at få vist information om ubehandlede Objective-C-undtagelser i konsollen.
- Enable Crash Report API: Tillader integration med en brugerdefineret crash reporter for at indsamle detaljerede crash-rapporter.
Andre Vigtige Indstillinger
Ud over de ovennævnte kategorier findes der en række andre vigtige indstillinger:
Identifikation
Her angiver du appens Bundle Identifier (f.eks. com.CompanyName.ProductName), versionsnummer og build-nummer. Disse værdier er afgørende for, hvordan din app identificeres på iOS-enheder og i App Store. "Signing Team ID" og "Automatically Sign" er vigtige for at kunne signe din app korrekt.
Konfiguration
Scripting Backend: For iOS er dette som standard sat til IL2CPP, som kompilerer C#-kode til C++ og derefter til native maskinkode. Dette giver generelt bedre ydeevne. "API Compatibility Level" bestemmer, hvilke .NET-API'er du kan bruge, og kan påvirke kompatibiliteten med tredjepartsbiblioteker. "Use incremental GC" kan hjælpe med at reducere ydeevne-spikes forårsaget af garbage collection.
Apple-specifik Information
Denne sektion indeholder indstillinger som "Camera Usage Description", "Location Usage Description" og "Microphone Usage Description", som kræver, at du angiver en begrundelse for, hvorfor din app tilgår disse hardwarefunktioner. "Accelerometer Frequency", "Mute Other Audio Sources", "Prepare iOS for Recording" og "Force iOS Speakers when Recording" giver yderligere kontrol over lyd- og hardwareinteraktion.
Andre vigtige indstillinger inkluderer "Requires Persistent WiFi", "Allow downloads over HTTP" og "Supported URL schemes", som giver dig mulighed for at definere specifikke netværks- og URL-handlingskrav for din app.
Enhedsinformation
Her vælger du, hvilke enheder din app skal målrette (iPhone, iPad, eller begge) og hvilken SDK (Device eller Simulator) der skal bruges til build. "Target minimum iOS Version" bestemmer den ældste iOS-version, din app understøtter. "Enable ProMotion Support" giver mulighed for højere opdateringshastigheder på kompatible enheder, mens "Requires ARKit support" filtrerer enheder, der ikke understøtter ARKit.
"Automatically add capabilities" er en praktisk funktion, der automatisk genererer en entitlements.plist-fil, som tilføjer nødvendige capabilities for iOS API'er, din app bruger. "Defer system gestures on edges" giver brugerne mulighed for at udføre system-gestures med et dobbelt-swipe, hvilket er nyttigt for at undgå utilsigtede gestures. "Hide home button on iPhone X" og "Render Extra Frame on Pause" er specifikke indstillinger for visse enheder og scenarier.
Variant Map for App Slicing
Denne funktion, der er tilgængelig, når "Use on Demand Resource" er aktiveret, giver dig mulighed for at definere forskellige varianter af din app baseret på enhedstype, hukommelse og grafik. Dette er en del af Apples "App Slicing"-teknologi, der optimerer downloadstørrelsen for din app.
Andre Konfigurationsindstillinger
Under "Architecture" kan du vælge mellem "Universal" (anbefalet), "Armv7" eller "Arm64". "Active Input Handling" giver dig mulighed for at vælge mellem det gamle Input Manager og det nyere Input System.
Script Kompilering
Her kan du definere "Scripting Define Symbols" og "Additional Compiler Arguments" for at påvirke, hvordan dine scripts kompileres. Indstillinger som "Allow 'unsafe' Code" og "Use Deterministic Compilation" giver yderligere kontrol over kompileringsprocessen.
Optimering
"Prebake Collision" kan forbedre fysikydelsen ved at forudberegne kollisionsdata. "Keep Loaded Shaders Alive" forhindrer shaders i at blive aflæsset. "Preloaded Assets" lader dig specificere aktiver, der skal indlæses ved opstart. "Strip Engine Code" og "Managed Stripping Level" hjælper med at reducere appens størrelse ved at fjerne ubrugt kode. "Script Call Optimization" giver dig mulighed for at optimere ydeevnen ved at deaktivere fejlhåndtering i visse scenarier.
Logging
Du kan vælge, hvilken type logning der skal tillades (Error, Assert, Warning, Log, Exception) og hvor dybdegående logningen skal være (ScriptOnly, Full, None). Korrekt logning er essentielt for at diagnosticere problemer.
XR Indstillinger
Selvom indbygget support for XR SDK'er er ved at blive udfaset til fordel for XR Plug-in Management, kan du stadig konfigurere "Virtual Reality Supported" og tilføje nødvendige VR SDK'er her. "Stereo Rendering Mode" (Multi Pass eller Single Pass) påvirker, hvordan scener renderes for VR-enheder.
At mestre Unitys iOS Player-indstillinger er afgørende for at skabe en højtydende, visuelt tiltalende og robust iOS-app. Ved at forstå og konfigurere disse indstillinger omhyggeligt, kan du sikre, at din app leverer den bedst mulige oplevelse for dine brugere.
Ofte Stillede Spørgsmål (FAQ)
Hvad er den vigtigste indstilling for at optimere ydeevnen på iOS?
"Resolution Scaling" med "FixedDPI" og "Managed Stripping Level" til "High" er ofte de mest effektive indstillinger til at optimere ydeevnen og reducere appens størrelse.
Hvordan tilføjer jeg brugerdefinerede ikoner til min iOS-app i Unity?
Gå til "Player Settings" > "Icon" og upload dine ikoner som "Texture 2D"-assets for hver enhedstype og placering.
Kan jeg bruge forskellige startskærme til forskellige enheder?
Ja, du kan bruge brugerdefinerede storyboards eller XIB-filer, eller konfigurere "Image and background"-indstillingerne separat for iPhone og iPad for at opnå forskellige startskærme.
Hvad er IL2CPP, og hvorfor er det standard for iOS?
IL2CPP (Intermediate Language To C++) er et scripting-backend, der kompilerer C#-kode til C++ og derefter til native maskinkode. Det giver generelt bedre ydeevne og hukommelseshåndtering på iOS sammenlignet med Mono.
Hvordan kan jeg fejlfinde crashes i min iOS-app bygget med Unity?
Sørg for at have "On .Net UnhandledException" sat til "Crash" og "Log Obj-C Uncaught Exceptions" aktiveret. Brug "Enable Crash Report API" til at integrere med et eksternt crash-rapporteringssystem for mere detaljerede analyser.
Hvis du vil læse andre artikler, der ligner Unity iOS Player Indstillinger: En Dybdegående Guide, kan du besøge kategorien Teknologi.
