At bringe dine visuelle aktiver ind i dit Unity-projekt er et grundlæggende skridt i udviklingsprocessen. Billeder, ofte omtalt som teksturer i spiludviklingskonteksten, er essentielle for at give dine 3D-modeller, 2D-sprites og brugergrænsefladeelementer deres visuelle udseende. Unity gør importprocessen ligetil, idet det automatisk håndterer mange af de tekniske detaljer for dig, så du kan fokusere på at skabe.
https://www.youtube.com/watch?v=0gcJCdgAo7VqN5tD
Når du arbejder med Unity, er en af de første ting, du lærer, hvordan du får dine eksterne filer ind i projektet, så de kan bruges i spillet eller applikationen. Dette gælder for mange filtyper, men især for billeder, som er fundamentale for grafikken. Unity er designet til at importere billed- og videofiler placeret i din projekts 'Assets'-mappe og behandle dem forskelligt afhængigt af, om du arbejder i et 3D- eller 2D-projekt.

I et 3D-projekt importerer Unity typisk billed- og videofiler som Teksturer. Teksturer er bitmap-billeder, der påføres overfladen af meshes for at give dem visuelle detaljer, såsom farve, mønster eller ruhed. De er rygraden i visuel realisme i 3D-grafik.
Derimod, i et 2D-projekt, importeres billed- og videofiler i 'Assets'-mappen som Sprites. Sprites er grundlæggende 2D grafiske objekter. Selvom de i bund og grund er standard teksturer, håndteres de med specifikke teknikker i Unity, optimeret til 2D-spiludvikling, herunder systemer til at kombinere og administrere sprite-teksturer for effektivitet og bekvemmelighed.
Unitys importmotor er intelligent. Så længe billedet opfylder visse størrelseskrav, importerer og optimerer Unity det automatisk til brug i spillet. Dette omfatter endda filer med flere lag som Photoshop PSD- eller TIFF-filer, hvilket er en stor fordel for kunstnere.
Understøttede Filformater
Unity er meget fleksibel, når det kommer til, hvilke billedfilformater den kan læse og importere. Denne brede understøttelse betyder, at du sandsynligvis kan bruge de billedfiler, du allerede opretter i dine foretrukne digitale indholdsoprettelsesprogrammer (DCC), såsom Adobe Photoshop, GIMP, Krita osv., uden at skulle konvertere dem manuelt til et specifikt format først.
Unity kan læse følgende almindelige billedfilformater:
- BMP
- EXR
- GIF
- HDR
- IFF
- JPG (eller JPEG)
- PICT
- PNG
- PSD (Adobe Photoshop Document)
- TGA
- TIFF
Denne omfattende liste dækker de fleste standardformater, der bruges i digital kunst og design. Det er værd at bemærke, at Unitys understøttelse af formater som PSD og TIFF er særligt nyttig. Unity fladtrykker automatisk flerlags Photoshop PSD- eller TIFF-filer ved import. Dette fladtrykning sker kun for de importerede data internt i Unity og ikke for selve kildefilen. Dette betyder, at du kan fortsætte med at gemme og importere dine PSD- eller TIFF-filer direkte fra dit billedredigeringsprogram uden at miste dine lag i originalfilen. Denne arbejdsgang tillader dig at have én kopi af hver tekstur, som du kan bruge på tværs af forskellige applikationer – i Photoshop til redigering, i dit 3D-modelleringsprogram til texturing, og direkte i Unity til brug i dit projekt.
For billeder, der indeholder HDR-information (High Dynamic Range), såsom EXR- eller HDR-filer, er Unitys Tekstur-importør også meget dygtig. Den vælger automatisk det korrekte HDR-format til den output-tekstur, der genereres i Unity. Dette outputformat justeres dynamisk afhængigt af den platform, du bygger dit spil til, hvilket sikrer kompatibilitet og optimal ydeevne på tværs af forskellige enheder.
Teksturdimensioner og Ydeevne
Når du forbereder billeder til brug som teksturer i Unity, er størrelsen på billedets dimensioner et vigtigt hensyn, der kan påvirke både hukommelsesforbrug og gengivelsesydelse. Ideelt set bør teksturdimensioner have størrelser, der er potenser af to på hver side. Dette betyder dimensioner som 2x2, 4x4, 8x8, 16x16, 32x32, 64x64, 128x128, 256x256, 512x512, 1024x1024, 2048x2048 pixels (px), og så videre, op til de maksimale understøttede størrelser.
Teksturer behøver ikke at være kvadratiske; bredden kan være forskellig fra højden, så længe begge dimensioner er potenser af to (f.eks. 512x1024 eller 2048x128). Brugen af potenser af to dimensioner er en langvarig konvention inden for computergrafik og er optimeret til, hvordan grafikkort (GPU'er) behandler teksturdata. Dette er især vigtigt for funktioner som mipmaps, som kræver, at teksturdimensionerne kan halveres gentagne gange, indtil de når 1x1 pixel.
Det er muligt at bruge teksturdimensioner, der ikke er potenser af to (NPOT - Non-Power Of Two) med Unity. Unity understøtter NPOT-teksturer, men der er ulemper. NPOT-teksturer bruger generelt lidt mere hukommelse og kan være langsommere for GPU'en at sample, hvilket potentielt kan påvirke spillets ydeevne negativt. Derfor er det generelt bedre for ydeevnen at bruge potenser af to størrelser, når det er muligt.
Hvis den platform eller GPU, du bygger til, ikke understøtter NPOT-teksturdimensioner fuldt ud, vil Unity skalere og polstre teksturen op til den næste potens af to størrelse. Denne proces bruger endnu mere hukommelse og gør indlæsning langsommere, især på ældre mobile enheder. Generelt bør du kun bruge NPOT-størrelser til specifikke formål, hvor potenser af to ikke er praktiske eller nødvendige, som f.eks. til GUI-elementer, hvor ydeevneeffekten er minimal.
Unity giver dig mulighed for at skalere NPOT-teksturaktiver op ved import ved hjælp af 'Non Power of 2'-indstillingen i 'Advanced'-sektionen af Tekstur-importøren. Dette kan give dig mere kontrol over, hvordan NPOT-teksturer håndteres, selvom det ofte er bedst at forberede teksturerne med potenser af to dimensioner fra starten i dit billedredigeringsprogram.
Der er også maksimale teksturdimensionsstørrelser, som specifikke platforme kan pålægge. Disse grænser afhænger af grafik-API'en og dens feature-niveau. For eksempel, med DirectX, varierer de maksimale teksturstørrelser:
- DX9 Shader Model 3 / Windows Phone DX11 9.3 level / OpenGL ES 3.0: 4096x4096
- DX10 Shader Model 4 / GL3 / OpenGL ES 3.1: 8192x8192
- DX11 Shader Model 5 / GL4: 16384x16384
Unitys Tekstur-importør begrænser dig til at vælge dimensionsstørrelser op til 16384x16384 pixels. Det er vigtigt at være opmærksom på disse begrænsninger, især når du arbejder med meget store teksturer eller cubemaps. De fleste Mali GPU'er understøtter for eksempel teksturdimensionsstørrelser op til 4K (4096x4096) for cubemaps.
Platformspecifikke Overrides
Når du udvikler spil, der skal køre på flere forskellige platforme (f.eks. PC, mobil, konsol), er det sjældent, at de samme teksturindstillinger er optimale for alle. Hver platform har forskellige krav og muligheder med hensyn til opløsning, hukommelsesstørrelse, ydeevne og understøttede kompressionsformater. Unity adresserer dette behov gennem platformspecifikke overrides.
Panelet for platformspecifikke overrides i Tekstur-importøren giver dig mulighed for at definere forskellige importindstillinger for hver målplatform, du bygger til. Dette inkluderer indstillinger som maksimal størrelse, kompressionsformat, mipmap-indstillinger og filtrering.
Arbejdsgangen er typisk at indstille standardegenskaberne under fanen 'Default'. Disse indstillinger gælder, medmindre de overskrides af en platformspecifik indstilling. Derefter navigerer du til fanen for en specifik målplatform (f.eks. 'Android', 'iOS', 'PC, Mac & Linux Standalone', etc.). Her aktiverer du indstillingen 'Override for
Nogle teksturimportindstillinger kan også overskrides globalt i Build Profiles, primært for at fremskynde iterationstiden under udvikling ved at bruge hurtigere, men potentielt mindre optimerede, indstillinger under test.
Hvordan Importerer Man Aktiver i Unity Generelt?
Import af billeder er en del af den bredere proces for import af aktiver i Unity. Når du opretter et Unity-projekt, opretter Unity en mappe til dit projekt, som indeholder en undermappe kaldet 'Assets'. Denne mappe er kernen i dit projekt – det er her, du placerer alle de filer, du vil bruge i dit spil: 3D-modeller, lydfiler, scripts, scener og naturligvis billeder og teksturer.
Den mest ligetil måde at importere aktiver på er simpelthen at eksportere eller kopiere filen direkte ind i din projekts 'Assets'-mappe ved hjælp af din computers filhåndtering (f.eks. Windows Stifinder, macOS Finder). Unity overvåger konstant 'Assets'-mappen. Når du tilføjer en ny fil eller gemmer ændringer til en eksisterende fil i denne mappe, opdager Unity det automatisk og starter importprocessen.
Alternativt kan du trække en fil fra din computers filhåndtering direkte ind i Unitys 'Project'-vindue. Når du gør dette, kopierer Unity filen til din 'Assets'-mappe og importerer den derfra. Dette er ofte en hurtig og bekvem måde at tilføje et par filer på.
Det er vigtigt at bemærke, at elementerne, der vises i 'Project'-vinduet, typisk repræsenterer faktiske filer i din 'Assets'-mappe på din computer. Hvis du sletter et aktiv i 'Project'-vinduet, sletter du det også fra din harddisk. Vær forsigtig med dette.

Håndtering af Aktiver og Metadata
Når du importerer en fil, læser Unity kildefilen og opretter en intern repræsentation af aktivet. Denne interne version er optimeret til den målplatform, du arbejder på, og passer til de importindstillinger, du har valgt. Det er vigtigt at forstå, at Unity ikke ændrer din originale kildefil i 'Assets'-mappen. Den opretter en behandlet version til intern brug.
Hvis du ændrer importindstillingerne for et aktiv i Unitys Inspector-vindue eller foretager en ændring af kildefilen i 'Assets'-mappen (f.eks. redigerer billedet i Photoshop og gemmer), vil Unity automatisk genimportere aktivet for at afspejle dine ændringer. Dette sikrer, at den interne repræsentation altid er opdateret.
Når du flytter eller omdøber aktiver i dit projekt, er det bedste praksis at gøre det direkte i Unitys 'Project'-vindue. Når du gør dette, håndterer Unity automatisk at flytte eller omdøbe den tilsvarende '.meta'-fil. Hver aktivfil i din 'Assets'-mappe har en ledsagende '.meta'-fil (som er skjult som standard i de fleste filhåndteringer). Denne '.meta'-fil indeholder alle de importindstillinger, du har angivet for aktivet, samt unikke ID'er, som Unity bruger til at referere til aktivet i scener og andre aktiver. Hvis du flytter eller omdøber filer uden for Unity, kan du miste forbindelsen til deres metadata, hvilket kan forårsage problemer i projektet.
Komplekse Aktiver og Asset Processing
Nogle gange importerer du en enkelt fil, der indeholder flere typer information eller flere separate elementer. Unity er i stand til at håndtere dette og kan oprette flere separate aktiver fra en enkelt kildefil.
- For eksempel, hvis du importerer en 3D-model fil (som en FBX-fil), der definerer materialer eller indeholder indlejrede teksturer, vil Unity automatisk udtrække disse materialer og indlejrede teksturer som separate aktiver i dit 'Project'-vindue.
- Hvis du importerer et billedfil, som du ønsker at bruge som flere 2D-sprites (f.eks. et sprite sheet med animationer eller forskellige objekter), kan du bruge Unitys Sprite Editor til at definere de individuelle sprites inden for billedet. Når du har gjort dette, vil hver defineret sprite fremstå som et separat sprite-aktiv i 'Project'-vinduet, klar til brug.
- Hvis en 3D-fil indeholder flere animationsspor eller clips, vil Unity også automatisk definere separate animationstidslinjer eller clips baseret på dens animationsimportindstillinger. De resulterende animationsklips fremstår som separate Animation Clip-aktiver.
Unitys asset processing er en af dens kernefunktioner. Den læser og behandler alle filer, du tilføjer til 'Assets'-mappen, og konverterer indholdet til et internt dataformat, der er korrekt formateret og optimeret til din applikations målplatform. Kildefilerne i 'Assets'-mappen forbliver uændrede. De behandlede, interne versioner af dine aktiver gemmes i projektets 'Library'-mappe. Disse data er en del af Unitys Asset Database.
'Library'-mappen fungerer i bund og grund som en cache. Den indeholder alle de importerede og behandlede versioner af dine aktiver, klar til brug af Unity Editor og ved runtime. Du bør aldrig manuelt ændre filerne i 'Library'-mappen, da dette kan beskadige dit projekt. Denne mappe behøver heller ikke at inkluderes under versionsstyring (som Git eller Perforce), da den kan regenereres fuldt ud fra indholdet af 'Assets' og 'ProjectSettings'-mapperne.
Faktisk, hvis dit projekt ikke er åbent i Unity, kan du sikkert slette 'Library'-mappen. Næste gang du åbner projektet, vil Unity automatisk genimportere alle dine aktiver fra 'Assets'-mappen og genopbygge 'Library'-mappens indhold. Dette kan være nyttigt til fejlfinding, hvis Asset Database ser ud til at være beskadiget.
Importindstillinger for Aktiver
Hver type aktiv, som Unity understøtter, har et sæt importindstillinger, der påvirker, hvordan aktivet opfører sig eller ser ud i projektet. For at se og ændre et aktivs importindstillinger skal du vælge aktivet i 'Project'-vinduet. Importindstillingerne for det valgte aktiv vises derefter i 'Inspector'-vinduet.
De specifikke muligheder, der vises i Inspector for importindstillinger, varierer meget afhængigt af den type aktiv, du har valgt. For en tekstur (et importeret billede) finder du indstillinger relateret til teksturtype (f.eks. Texture, Sprite, Cursor, Normal Map, Cubemap), dimensioner, komprimering, mipmap-generering, filtreringstilstande (Point, Bilinear, Trilinear) og meget mere.
Som nævnt tidligere, hvis du udvikler et projekt, der skal køre på flere platforme, kan du overskride standardindstillingerne og tildele forskellige importindstillinger på en per-platform basis ved hjælp af Platform-specific overrides.
Genbrug af Aktiver Mellem Projekter
Efterhånden som du bygger dine applikationer, gemmer Unity metadata om dine aktiver, herunder importindstillinger, referencer til andre aktiver og andre vigtige oplysninger i de førnævnte '.meta'-filer og Asset Database. Hvis du ønsker at overføre dine aktiver, herunder alle deres indstillinger og referencer, til et andet Unity-projekt, er der et par standardmetoder:
- Asset Package (.unitypackage): Dette er et almindeligt format til deling og genbrug af Unity-projekter eller samlinger af aktiver. Du kan eksportere udvalgte aktiver eller hele projektet som et '.unitypackage'-fil. Når du importerer dette package i et andet projekt, bevares aktivstrukturen og importindstillingerne. Det er som en komprimeret fil (svarende til Zip), der indeholder både aktiverne og deres metadata.
- Custom Package: Med den moderne Package Manager i Unity kan du også oprette og administrere brugerdefinerede pakker. Dette er en mere avanceret metode, der ofte bruges til at organisere større sæt af genanvendelige aktiver eller værktøjer på en mere modulær måde.
Disse metoder sikrer, at når du genbruger aktiver, mister du ikke det arbejde, du har lagt i at konfigurere deres importindstillinger og relationer inden for Unity.
Ofte Stillede Spørgsmål om Billedimport i Unity
Her er svar på nogle almindelige spørgsmål vedrørende import af billeder (teksturer/sprites) i Unity:
Hvilke billedfilformater understøtter Unity?
Unity understøtter en bred vifte af formater, herunder BMP, EXR, GIF, HDR, IFF, JPG, PICT, PNG, PSD, TGA og TIFF.
Skal mine teksturer have dimensioner, der er potenser af to?
Det anbefales kraftigt at bruge dimensioner, der er potenser af to (f.eks. 256x512, 1024x1024) for optimal ydeevne og kompatibilitet, især med mipmaps. Selvom Unity understøtter NPOT (Non-Power of Two), kan de bruge mere hukommelse og være langsommere at behandle.
Hvad sker der, hvis jeg importerer en PSD- eller TIFF-fil med lag?
Unity fladtrykker automatisk filen ved import til intern brug, men din originale kildefil med lag forbliver uændret. Dette gør det nemt at opdatere teksturer direkte fra dit billedredigeringsprogram.
Hvor gemmer Unity de importerede aktiver?
Unity gemmer de originale kildefiler i din projekts 'Assets'-mappe. De behandlede og optimerede versioner af aktiverne gemmes i 'Library'-mappen. 'Library'-mappen er en cache og bør ikke ændres manuelt eller inkluderes i versionsstyring.
Hvordan ændrer jeg importindstillingerne for et billede?
Vælg billedfilen i 'Project'-vinduet. Importindstillingerne vises derefter i 'Inspector'-vinduet, hvor du kan justere dem efter behov.
Kan jeg have forskellige importindstillinger for den samme tekstur på forskellige platforme?
Ja, du kan bruge panelet for 'Platform-specific overrides' i Tekstur-importøren til at angive forskellige indstillinger (som komprimering eller maksimal størrelse) for hver målplatform, du bygger til.
At mestre importprocessen og forstå teksturindstillinger er afgørende for effektivt at styre dit projekts visuelle aktiver, optimere ydeevnen og sikre, at dit spil eller din applikation ser bedst muligt ud på alle dine målplatforme. Med den fleksibilitet, Unity tilbyder, er det ligetil at bringe dine kreative visioner til live.
Hvis du vil læse andre artikler, der ligner Sådan Importerer Du Billeder i Unity, kan du besøge kategorien Fotografi.
