Unity: koncept

Unity har några grundläggande koncept som du behöver ha koll på för att skapa virtuella världar i verktyget:

Assets

Assets kallar Unity alla resurser som en virtuell värld behöver, t.ex:

  • 3D-modeller
  • Material
  • Sprites/bilder
  • Script
  • Animeringar
  • Prefabs (återanvändningsbara delar av en virtuell värld)

Dessa resurser är i praktiken filer av olika slag som sparas i Unity-projektets Assets-mapp. Vill du importera någon media som t.ex. ljud, en bild eller en 3D-modell, så är det i Assets-mappen de ska placeras.

Allt som ligger i Assets går att använda i hela projektet, till skillnad från gameobjects som skapas i en scen, som bara existerar i den scenen.

Scener

Ett Unity-projekt består utav en eller flera scener. Det måste alltid finnas en scen. En scen är en egen virtuell värld. Så ett Unity-projekt kan alltså innehålla flera virtuella världar.

Detta används i regel för att dela upp en designad virtuell värld i flera tekniska virtuella världar (scener), oftast för att hantera prestandan, se till att världen och dess resurser är körbar på rimliga datorer. T.ex. kan en scener vara olika levels i ett plattformerspel, eller en scen för ”utsida”/landskap i en ”open world”-upplevelse, medan varje ”insida”, t.ex. insidan på ett hus, är egen scen.

Du kan i en scen be Unity öppna en annan scen. och därmed skapa upplevelsen av att all mindre virtuella världar (scener) hänger ihop till en stor.

Du bygger en scen av gameobjects (se nedan).

Gameobjects

En scen består av en samling gameobjects som beskriver världen. Därmed är gameobject det viktigaste konceptet i Unity.

Ett gameobject beskriver varje ”deltagare” i den virtuella världen, såsom representativa objekt som 3D-modeller och bilder, men även kamera och ljus.

Ett gameobject får sin funktion, sin ”uppgift” i den virtuella världen, från komponenter. Varje gameobject har alltid komponenten Transform, som beskriver ett gameobject’s rumsliga egenskaper i den virtuella världen, såsom positiom, rotation och skala. I övrigt formar du ett gameobjects funktion genom att lägga på ytterligare olika komponenter på det.

Komponenter (components)

Komponenter är skript du läggar på gameobjects för att tillföra det en funktionalitet. Du ser helt enkelt till att ett gameobject gör det du vill att det ska göra i den virtuella världar, genom att lägga olika komponenter på det.

Unity innehåller en hel del innbyggda komponenter, annars är en stor del av arbetet med att skapa sin egna virtuella värld att skapa sina egna komponenter med enkel, eller mer avancerad, programmering beroende på vad komponenten ska göra.

Ett gameobject som ska fungera som kamera får ha en kamera-komponent ”på sig”, ett gameobject som användaren ska kunna röra på, och animeras, får ha en user-input-komponent och en animerings-komponent på sig.

Prefabs

Prefabs är en en återanvändbar del av en scen, i praktiken ett eller flera gameobjects – med sina komponenter – som sparas i Assets, och därmed går att använda i projektets alla scener.

En stor fördel med prefabs är att det som sparas i assets är ett original, och det du sätter in i scenerna blir länkade kopior, ändrar du originalet i assets, ändras också de insatta instanserna i scenerna. Det samma gäller om du sätter in samma prefab flera gånger i samma scen.

Har du t.ex. ett plattformerspel där man ska samla på äpplen, är det lämpligt att göra prefabs av äpplena, så att om/när äpplet gameobject för ändras, så kan man göra det i originalet i assets så uppdateras alla instanser av den prefab’en i alla scener med en gång.

boss