Unity arbejder med præfabrikater
Prefabs er specielle aktiver, der gør det muligt for udviklere at gemme GameObjects sammen med deres komponenter og andre data i konfigurerbare skabeloner, som senere kan genbruges mellem Scenerne og andre projekter eller instansieres via et script uden at skulle konfigurere dem igen.
Tilfælde hvor Prefabs er nyttige:
- Miljøaktiver (træer, buske, klipper osv.)
- NPC'er (ikke-spillere)
- Projektiler
- Spillerforekomster
- Eventuelle genstande, der skal genbruges i spillet
Eksempel på brug
Når du trækker og slipper modeller direkte til scenen, vil de ofte blive forårsaget af nogle problemer, såsom:
- Manglende teksturer
- Forkert skala
- Forkert rotation
Problemerne ovenfor kan nemt løses i scenen (tildeling af det eller de korrekte materialer, ændring af skalaen/rotationen osv.):
Men hvis du planlægger at bruge modellen gentagne gange og/eller i forskellige scener, vil gentagelse af ovenstående trin hurtigt blive en kedelig opgave, så i stedet kan vi gemme modellen til en præfabrikat.
Sådan opretter du et præfabrikat
- For at oprette en præfabrikeret i Unity skal du blot trække og slippe objektet fra scenevisningen til projektvisningen.
- Efter at præfabrikatet er oprettet, kan det slippes ind i en hvilken som helst scene og skabe en nøjagtig kopi:
Redigering af præfabrikater
Redigering af eksisterende præfabrikater sker på 2 måder: ved at ændre dem i Prefab-editoren eller ved at ændre dem i scenen.
Ændring i Prefab Editor
- Vælg præfabrikatet i projektvisningen, og klik derefter i inspektørvisningen "Open Prefab"
- Prefab'et åbnes i editoren, hvor du kan ændre det.
- Når du er færdig med at ændre, skal du klikke på tilbagepilen i hierarkivisningen for at afslutte redigeringen og gemme ændringerne.
Ændring i scenen
- Slip præfabrikatet i scenevisningen, og rediger det der.
- I mit tilfælde har jeg tilføjet et andet objekt til hierarkiet (Bemærk (+) symbolet nær ikonet)
- Når du ændrer prefabs i scenen, gemmes ændringerne ikke automatisk, i stedet skal du manuelt vælge rodobjektet for Prefab, og i Inspector View skal du klikke på "Overrides" og derefter klikke på "Apply All" for at gemme ændringerne, eller "Revert All" for at fortryde ændringerne.
- Nogle handlinger understøttes ikke, når du redigerer Prefab direkte i scenen, for eksempel, hvis du skal omstrukturere hierarkiet, vil du blive præsenteret for beskeden "Cannot restructure Prefab instance" og med muligheder for enten "Open Prefab" eller "Cancel".
For at omstrukturere Prefab-instansen skal du enten klikke på 'Open Prefab' eller højreklikke på præfabrikatet i hierarkivisningen og derefter klikke på Prefab -> Unpack eller Prefab -> Pak helt ud.
Udpakning af Prefab vil fjerne dens tilknytning til den primære Prefab, hvilket gør den fuldt redigerbar i scenen.
For at gemme det udpakkede præfabrikat tilbage, skal du vælge mappen, hvor det originale præfabrikat er placeret, og derefter trække og slippe det ændrede objekt fra hierarkivisningen til det præfabrikat.
Nogle gange, hvis ændringerne er for drastiske, vil du blive præsenteret for en bekræftelsesmeddelelse.
Sørg for at dobbelttjekke, at du ændrer den rigtige Prefab, og klik derefter på "Replace Anyway" for at afslutte handlingen eller "Erstat ikke" for at annullere handlingen.
Den nye Prefab er nu gemt og klar til brug.