Unity — är en cross-platform spelmotor för att skapa 2D- och 3D-applikationer med stöd för kompilering på mobila plattformar, stationära datorer och konsoler. Den används både för spelutveckling och för icke-spelapplikationer inom arkitektur, fordonsindustri och detaljhandel. Enligt Unity Technologies, 2025 har över 70% av mobilspelen i topp 1000 på App Store skapats med Unity. C# — är motorns huvudsakliga programmeringsspråk, där spel logik, komponenter och redigeringsskript skrivs.
Huvudpunkter
Unity — är en utvecklingsmiljö för spel och realtidsapplikationer, skapad av Unity Technologies 2005. Motorn stödjer 27 plattformar, inklusive iOS, Android, Windows, macOS, PlayStation, Xbox, Nintendo Switch och WebGL. Enligt Unity Gaming Report (2024) startades över 3 miljarder mobilspel månatligen på Unity under 2023.
Huvudfunktionen hos Unity är den komponentorienterade arkitekturen. Varje objekt i scenen är en tom behållare (GameObject) som får komponenter som bestämmer dess beteende: rendering, fysik, ljud, animation och användarlogik. Detta skiljer Unity från hierarkiska motorer som Unreal Engine, där beteende bestäms av klassarv.
Enligt Statista (2025) har Unity 48% av marknaden för spelmotorer för mobilspel, före Unreal Engine (15%) och egna lösningar (37%). Motorn väljs av indie-studios för låg inträdeströskel och av stora utgivare för flexibiliteten i kompileringspipelinen för olika plattformar.
Unitys arkitektur bygger på fyra grundläggande koncept: scener, GameObjects, komponenter och prefabs. Att förstå denna hierarki är nödvändigt för effektivt arbete med motorn.
Scen (Scene) — är en behållare som innehåller alla objekt i en spelnivå eller applikationstillstånd. Varje scen har sin egen uppsättning GameObjects, ljuskällor, kameror och ljudkällor. Övergång mellan scener görs via SceneManager.LoadScene().
GameObject — den grundläggande byggstenen i Unity. Den har ingen visuell representation eller standardbeteende — det är en tom nod i scenhierarkin. Allt beteende och utseende läggs till via komponenter. Till exempel, för att göra ett GameObject synligt läggs MeshRenderer till; för att lyda fysik — Rigidbody.
MonoBehaviour — är basklassen för alla anpassade skript i Unity. Den tillhandahåller livscykeln: Awake (anropas när objektet laddas), Start (före första bildrutan), Update (varje bildruta), FixedUpdate (varje fysiksteg) och OnDestroy (vid förstöring).
Varje komponent kan interagera med andra komponenter på samma GameObject via GetComponent<T>(). Detta möjliggör skapandet av modulära system: till exempel kan Health-komponenten vara oberoende av Movement-komponenten, men båda kan reagera på händelser via UnityEvent.
Prefab — är en GameObject-mall som sparas i projektet som en tillgång. Ändring av prefaben tillämpas automatiskt på alla dess instanser i scener. Detta är den centrala återanvändningsmekanismen i Unity som snabbar upp iterationer och minskar antalet fel.
Prefabs stödjer nästling (Nested Prefabs): en prefab kan innehålla andra prefabs, vilket skapar en hierarki. Till exempel kan en bilprefab innehålla prefabs för hjul, motor och kaross, var och en med sina egna komponenter och inställningar.
Låt oss titta på en grundläggande komponent för karaktärsrörelse i C#. Detta skript flyttar objektet framåt i förhållande till dess aktuella rotation och bearbetar användarinmatning.
using UnityEngine;
public class PlayerMovement : MonoBehaviour
{
public float speed = 5f;
void Update()
{
float move = Input.GetAxis("Vertical");
Vector3 direction = transform.forward * move;
CharacterController controller = GetComponent<CharacterController>();
controller.SimpleMove(direction * speed);
}
}
Metoden Update() anropas varje bildruta. Input.GetAxis läser vertikal styrning, SimpleMove tillämpar rörelse med hänsyn till fysik. CharacterController — en inbyggd Unity-komponent som hanterar kollisioner utan att du behöver skriva kollisionsfysik.
Exempel på skript för att hantera kollisioner och orsaka skada:
using UnityEngine;
public class DamageHandler : MonoBehaviour
{
public int health = 100;
void OnCollisionEnter(Collision collision)
{
if (collision.gameObject.CompareTag("Enemy"))
{
health -= 10;
if (health <= 0)
{
Destroy(gameObject);
}
}
}
}
Metoden OnCollisionEnter anropas av fysikmotorn när ett GameObject kolliderar med ett annat objekt. Jämförelse med tagg (CompareTag) avgör exakt vad kollisionen var med. Detta tillvägagångssätt möjliggör återanvändning av DamageHandler-komponenten för spelare, fiender och förstörbara objekt utan kodändring.
Unity erbjuder specialiserade verktyg för optimering av spel på mobila enheter med begränsade resurser. De viktigaste optimeringsområdena inkluderar minneshantering, minskning av antalet draw calls och anpassning till olika skärmupplösningar.
För mobila plattformar erbjuder Unity Asset Bundles — ett system för innehållspaketering som laddar resurser på begäran, vilket minskar applikationens initiala storlek. Detta är särskilt viktigt för spel med många nivåer eller karaktärer, där inläsning av alla tillgångar samtidigt inte är möjligt på grund av begränsningar i appbutiker.
Unity Profiler möjliggör analys av CPU-, GPU- och minnesanvändning på en verklig enhet via ADB (Android) eller USB (iOS). Enligt Unity Documentation (2025) ger optimering av antalet draw calls till 100–300 på mobila enheter stabila 60 FPS på medelklassenheter.
För mobilspel använder Unity Input System som abstraherar touch-kontroll, accelerometer och gyroskop under ett enhetligt API. Virtuella joysticks, svepningar och tryckningar konfigureras via Input Action Assets utan att skriva touchhanteringskod.
Unitys UI-system (uGUI) stödjer Canvas Scaler för automatisk anpassning av gränssnittet till olika skärmförhållanden. Canvas Scaler-komponenten med läget Scale With Screen Size garanterar att knappar inte hamnar utanför skärmen på surfplattor och smartphones.
Kompilering av mobilspel i Unity görs via fönstret Build Settings. För Android krävs Android SDK och NDK, Unity genererar ett Gradle-projekt som kompileras till APK eller AAB. För iOS krävs Xcode — Unity skapar ett Xcode-projekt med Objective-C/Swift-omslag, som sedan kompileras via Apple.
IL2CPP — ett kompileringsalternativ som översätter C#-kod till C++ och sedan till inbyggd ARM-kod. Enligt Unity Benchmark (2024) ökar IL2CPP prestandan med 15–25% på iOS och Android jämfört med Mono, men ökar kompileringstiden och den binära filstorleken.
Unity jämförs med Unreal Engine och Godot som de främsta alternativen på marknaden för spelmotorer. Valet beror på projekttyp, teamets kompetens och målplattformar.
| Kriterium | Unity | Unreal Engine 5 | Godot 4 |
|---|---|---|---|
| Språk | C# | C++ / Blueprints | GDScript / C# |
| Grafik | Built-in / URP / HDRP | Nanite + Lumen | Egen renderare |
| Mobil optimering | Utmärkt (70% mobilspel) | Bra (AAA-port) | Bra (lätt motor) |
| Inträdeströskel | Låg | Hög | Låg |
| Licens | Personal / Pro / Enterprise | 5% royalty (upp till $1M) | MIT (gratis) |
För mobilspel förblir Unity industristandard tack vare det flexibla renderingssystemet (URP — Universal Render Pipeline) som optimerar grafik för mobila GPU:er med begränsad beräkningskraft. URP minskar automatiskt antalet renderingspass och kombinerar shaders för att minska GPU-belastningen.
Unreal Engine 5 erbjuder bättre grafikkvalitet (Nanite för geometri, Lumen för belysning), men kräver kraftfullare hårdvara och mer teamerfarenhet. Godot lockar med öppen källkod och liten motorstorlek, men har färre färdiga tillgångar och en mindre special istmarknad.
Unity används aktivt utanför spelutveckling — inom arkitektur, fordonsindustri, detaljhandel och utbildning. Realtidsvisualisering (RT3D) möjliggör skapandet av interaktiva 3D-presentationer, simulatorer och produktkonfiguratorer.
Inom fordonsindustrin används Unity för att skapa digitala tvillingar av bilar och HMI-system (Human-Machine Interface). Mercedes-Benz och BMW använder Unity för prototypframställning av instrumentpaneler och multimendiasystem innan den fysiska prototypen har lanserats.
Inom detaljhandeln används Unity för produktkonfiguratorer: IKEA (virtuell möbelplacering), Nike (sköanpassning) och Audi (bilkonfigurator) — alla dessa projekt är byggda på Unity. Användaren kan i realtid ändra produktens färg, material och utrustning och se resultatet i 3D.
För icke-spelprojekt erbjuder Unity speciella verktyg: AR Foundation (för ARKit och ARCore), Pixyz Plugin (för import av CAD-modeller) och Unity Reflect (för synkronisering med Revit BIM-modeller). Företaget utvecklar aktivt inriktningen Unity Industry, som inkluderar molntjänster för företagskunder.
Vanliga frågor
Unity anses vara en av de mest tillgängliga spelmotorerna för nybörjare tack vare omfattande dokumentation, kostnadsfria Unity Learn-kurser och en stor gemenskap. För att börja räcker det att kunna grunderna i C# och förstå principerna för komponentbaserad arkitektur. De flesta nybörjare skapar sitt första spel inom 2–3 månader.
Ja, Unity har en fullständig 2D-pipeline: Sprite Renderer, 2D Physics (Box2D), Tilemap för att skapa nivåer av brickor och 2D Animation för skelettanimation av sprites. Många populära 2D-spel, inklusive Hollow Knight och Cuphead, har skapats i Unity. 2D-verktygen är inbyggda i motorn utan att plugin-program behöver installeras.
Unity Personal är gratis vid en årlig intäkt på upp till $200 tusen. Unity Pro kostar $2 040 per år per utvecklare och inkluderar avancerade profileringsverktyg, molnkompilering och prioriterad support. För mobil utveckling räcker Personal-funktionaliteten för de flesta indie-projekt.
Cocos2d — är ett 2D-ramverk med stöd för C++, Lua och JavaScript, inriktat på enkla 2D-spel. Unity är en fullständig 3D/2D-motor med editor, visuella verktyg och stöd för 27 plattformar. Cocos2d är populärt i Asien för hypercasual-spel, Unity är ett universellt val för vilken genre som helst.
Ja, Unity har inbyggt stöd för AR och VR genom AR Foundation (ARKit + ARCore), XR Interaction Toolkit och OpenXR. VR-projekt som Half-Life: Alyx (teknisk demonstration) och VRChat har skapats i Unity. Motorn stödjer alla större VR-headset: Meta Quest, HTC Vive, Valve Index och PlayStation VR.
Sammanfattning
Vi utvecklar en mobil applikation nyckelfärdigt
IT Sectr skapar iOS- och Android-applikationer för startups och företag sedan 2017. Vi ger dig råd och föreslår den bästa lösningen.
Läs också