Unity: basis, architectuur en programmeren in C#

Auteur: IT Sectr Gepubliceerd: 2026-05-02 Leestijd: 9 min

Unity — is een cross-platform game-engine voor het maken van 2D- en 3D-applicaties met ondersteuning voor compilatie op mobiele platforms, desktops en consoles. Het wordt zowel gebruikt voor game-ontwikkeling als voor non-gaming-applicaties in architectuur, automobielindustrie en retail. Volgens Unity Technologies, 2025 is meer dan 70% van de mobiele games in de top 1000 van de App Store gemaakt met Unity. C# — is de primaire programmeertaal van de engine, waarin gamelogica, componenten en editorscripts worden geschreven.

Belangrijkste punten

  • Unity — cross-platform game-engine met ondersteuning voor 2D, 3D, AR en VR
  • C# — primaire taal voor het schrijven van gamelogica, componenten en editorscripts
  • Componentgebaseerde architectuur — objectgedrag wordt opgebouwd uit componenten (MonoBehaviour)
  • Asset Store — marktplaats met kant-en-klare modellen, texturen, geluiden en plugins
  • Mobiele compilatie — builds voor iOS en Android met optimalisatie voor ARM-architectuur

Wat is Unity?

Unity — is een ontwikkelomgeving voor games en realtime applicaties, gemaakt door Unity Technologies in 2005. De engine ondersteunt 27 platforms, waaronder iOS, Android, Windows, macOS, PlayStation, Xbox, Nintendo Switch en WebGL. Volgens het Unity Gaming Report (2024) werden in 2023 maandelijks meer dan 3 miljard mobiele games gestart op Unity.

Het belangrijkste kenmerk van Unity is de componentgeoriënteerde architectuur. Elk object in de scène is een lege container (GameObject) waaraan componenten worden toegevoegd die het gedrag bepalen: rendering, fysica, geluid, animatie en gebruikerslogica. Dit onderscheidt Unity van hiërarchische engines zoals Unreal Engine, waar gedrag wordt bepaald door klasse-overerving.

Volgens Statista (2025) heeft Unity 48% van de markt voor game-engines voor mobiele games, waarmee het Unreal Engine (15%) en eigen oplossingen (37%) voorblijft. De engine wordt gekozen door indie-studio's vanwege de lage instapdrempel en door grote uitgevers vanwege de flexibiliteit van de compilatie-pipeline voor verschillende platforms.

Unity-architectuur: scènes, objecten en componenten

De Unity-architectuur is gebaseerd op vier fundamentele concepten: scènes, GameObjects, componenten en prefabs. Begrip van deze hiërarchie is noodzakelijk voor efficiënt werken met de engine.

Scènes en GameObjects

Scène (Scene) — is een container die alle objecten van het spellevel of de applicatiestatus bevat. Elke scène heeft zijn eigen set GameObjects, lichtbronnen, camera's en audiobronnen. Overgang tussen scènes gebeurt via SceneManager.LoadScene().

GameObject — de basisbouwsteen van Unity. Het heeft geen visuele weergave of standaardgedrag — het is een lege knoop in de scènehiërarchie. Al het gedrag en uiterlijk worden toegevoegd via componenten. Bijvoorbeeld, om een GameObject zichtbaar te maken, wordt MeshRenderer toegevoegd; om aan fysica te voldoen — Rigidbody.

MonoBehaviour-componenten

MonoBehaviour — is de basisklasse voor alle aangepaste scripts in Unity. Het biedt de levenscyclus: Awake (aangeroepen bij het laden van het object), Start (vóór het eerste frame), Update (elk frame), FixedUpdate (elke fysica-stap) en OnDestroy (bij vernietiging).

Elk component kan communiceren met andere componenten op hetzelfde GameObject via GetComponent<T>(). Dit maakt het mogelijk om modulaire systemen te creëren: bijvoorbeeld, het Health-component kan onafhankelijk zijn van het Movement-component, maar beide kunnen reageren op gebeurtenissen via UnityEvent.

Prefabs

Prefab — is een GameObject-sjabloon opgeslagen in het project als een asset. Wijziging van de prefab wordt automatisch toegepast op al zijn exemplaren in scènes. Dit is het centrale hergebruikmechanisme in Unity dat iteraties versnelt en het aantal fouten vermindert.

Prefabs ondersteunen nesting (Nested Prefabs): een prefab kan andere prefabs bevatten, waardoor een hiërarchie ontstaat. Bijvoorbeeld, een autoprefab kan de prefabs van wiel, motor en carrosserie bevatten, elk met eigen componenten en instellingen.

C#-codevoorbeelden in Unity

Laten we een basiscomponent voor personagebeweging in C# bekijken. Dit script verplaatst het object voorwaarts ten opzichte van zijn huidige rotatie en verwerkt gebruikersinvoer.

csharp
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);
    }
}

De methode Update() wordt elk frame aangeroepen. Input.GetAxis leest de verticale besturing, SimpleMove past beweging toe met inachtneming van fysica. CharacterController — een ingebouwde Unity-component die botsingen afhandelt zonder dat je de fysica van botsingen hoeft te schrijven.

Voorbeeldscript voor het afhandelen van botsingen en toebrengen van schade:

csharp
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);
            }
        }
    }
}

De methode OnCollisionEnter wordt aangeroepen door de fysica-engine bij botsing van een GameObject met een ander object. Vergelijking via tag (CompareTag) bepaalt waarmee precies de botsing plaatsvond. Deze benadering maakt hergebruik van het DamageHandler-component voor speler, vijanden en vernietigbare objecten mogelijk zonder codewijziging.

Mobiele game-ontwikkeling in Unity

Unity biedt gespecialiseerde tools voor optimalisatie van games op mobiele apparaten met beperkte resources. De belangrijkste optimalisatierichtingen omvatten geheugenbeheer, vermindering van het aantal draw calls en aanpassing aan verschillende schermresoluties.

Prestatieoptimalisatie

Voor mobiele platforms biedt Unity Asset Bundles — een contentverpakkingssysteem dat resources op aanvraag laadt, waardoor de initiële grootte van de applicatie afneemt. Dit is vooral belangrijk voor games met veel levels of personages, waar het laden van alle assets tegelijk niet mogelijk is vanwege de beperkingen van app-winkels.

De Unity Profiler maakt analyse van CPU-, GPU- en geheugengebruik op een echt apparaat mogelijk via ADB (Android) of USB (iOS). Volgens Unity Documentation (2025) biedt optimalisatie van het aantal draw calls tot 100–300 op mobiele apparaten stabiele 60 FPS op middenklasse apparaten.

Aanraakinvoer en UI

Voor mobiele games gebruikt Unity het Input System dat aanraakbediening, versnellingsmeter en gyroscoop abstraheert onder een uniforme API. Virtuele joysticks, swipes en tikken worden geconfigureerd via Input Action Assets zonder code voor aanraakverwerking te schrijven.

Het Unity UI-systeem (uGUI) ondersteunt Canvas Scaler voor automatische aanpassing van de interface aan verschillende beeldverhoudingen. De component Canvas Scaler met de modus Scale With Screen Size garandeert dat knoppen niet buiten het scherm vallen op tablets en smartphones.

Compilatie voor iOS en Android

Compilatie van mobiele games in Unity gebeurt via het Build Settings-venster. Voor Android zijn Android SDK en NDK vereist, Unity genereert een Gradle-project dat wordt gecompileerd naar APK of AAB. Voor iOS is Xcode vereist — Unity maakt een Xcode-project met Objective-C/Swift-wrapper, dat vervolgens via Apple wordt gecompileerd.

IL2CPP — een compilatie-optie die C#-code transpileert naar C++ en vervolgens naar native ARM-code. Volgens Unity Benchmark (2024) verhoogt IL2CPP de prestaties met 15–25% op iOS en Android in vergelijking met Mono, maar verlengt het de compilatietijd en vergroot het de binaire bestandsgrootte.

Vergelijking van Unity met andere engines

Unity wordt vergeleken met Unreal Engine en Godot als de belangrijkste alternatieven op de markt voor game-engines. De keuze hangt af van het projecttype, de kwalificatie van het team en de doelplatforms.

CriteriumUnityUnreal Engine 5Godot 4
TaalC#C++ / BlueprintsGDScript / C#
GrafischBuilt-in / URP / HDRPNanite + LumenEigen renderer
Mobiele optimalisatieUitstekend (70% mobiele games)Goed (AAA-port)Goed (lichte engine)
InstapdrempelLaagHoogLaag
LicentiePersonal / Pro / Enterprise5% royalty (tot $1M)MIT (gratis)

Voor mobiele games blijft Unity de industrienorm dankzij het flexibele rendering-systeem (URP — Universal Render Pipeline) dat graphics optimaliseert voor mobiele GPU's met beperkte rekenkracht. URP vermindert automatisch het aantal rendering-passes en combineert shaders om de GPU-belasting te verlagen.

Unreal Engine 5 biedt betere grafische kwaliteit (Nanite voor geometrie, Lumen voor verlichting), maar vereist krachtigere hardware en meer teamervaring. Godot trekt aan met opensource-code en kleine engine-grootte, maar heeft minder kant-en-klare assets en een kleinere specialistenmarkt.

Unity voor non-gaming-toepassingen

Unity wordt actief gebruikt buiten game-ontwikkeling — in architectuur, automobielindustrie, retail en onderwijs. Realtime visualisatie (RT3D) maakt het mogelijk om interactieve 3D-presentaties, simulatoren en productconfiguratoren te creëren.

In de automobielindustrie wordt Unity gebruikt voor het maken van digitale tweelingen van auto's en HMI-systemen (Human-Machine Interface). Mercedes-Benz en BMW gebruiken Unity voor het prototypen van dashboardpanelen en multimediasystemen nog voordat het fysieke prototype is uitgebracht.

In retail wordt Unity toegepast voor productconfiguratoren: IKEA (virtuele meubelplaatsing), Nike (schoeiselpersonalisatie) en Audi (autoconfigurator) — al deze projecten zijn gebouwd op Unity. De gebruiker kan in realtime de kleur, materialen en uitrusting van het product wijzigen en het resultaat in 3D zien.

Voor non-gaming-projecten biedt Unity speciale tools: AR Foundation (voor ARKit en ARCore), Pixyz Plugin (voor import van CAD-modellen) en Unity Reflect (voor synchronisatie met Revit BIM-modellen). Het bedrijf ontwikkelt actief de richting Unity Industry, die clouddiensten voor zakelijke klanten omvat.

Veelgestelde vragen

Is het moeilijk voor een beginner om te leren werken in Unity?

Unity wordt beschouwd als een van de meest toegankelijke game-engines voor beginners dankzij uitgebreide documentatie, gratis Unity Learn-cursussen en een grote community. Om te beginnen volstaat het om de basis van C# te kennen en de principes van componentgebaseerde architectuur te begrijpen. De meeste beginners maken hun eerste game binnen 2–3 maanden.

Kunnen er 2D-games worden gemaakt in Unity?

Ja, Unity heeft een volledige 2D-pipeline: Sprite Renderer, 2D Physics (Box2D), Tilemap voor het maken van levels uit tegels en 2D Animation voor skeletanimatie van sprites. Veel populaire 2D-games, waaronder Hollow Knight en Cuphead, zijn gemaakt in Unity. 2D-tools zijn ingebouwd in de engine zonder dat plugins nodig zijn.

Hoeveel kost Unity voor mobiele ontwikkeling?

Unity Personal is gratis bij een jaarinkomen tot $200.000. Unity Pro kost $2.040 per jaar per ontwikkelaar en omvat geavanceerde profileringstools, cloud-compilatie en prioritaire ondersteuning. Voor mobiele ontwikkeling is de functionaliteit van Personal voldoende voor de meeste indie-projecten.

Waarin verschilt Unity van de game-engine Cocos2d?

Cocos2d — is een 2D-framework met ondersteuning voor C++, Lua en JavaScript, gericht op eenvoudige 2D-games. Unity is een volledige 3D/2D-engine met editor, visuele tools en ondersteuning voor 27 platforms. Cocos2d is populair in Azië voor hypercasual games, Unity is een universele keuze voor elk genre.

Ondersteunt Unity AR en VR?

Ja, Unity heeft ingebouwde ondersteuning voor AR en VR via AR Foundation (ARKit + ARCore), XR Interaction Toolkit en OpenXR. VR-projecten zoals Half-Life: Alyx (technische demonstratie) en VRChat zijn gemaakt in Unity. De engine ondersteunt alle belangrijke VR-headsets: Meta Quest, HTC Vive, Valve Index en PlayStation VR.

Conclusie

  • Unity — cross-platform engine voor 2D/3D-games en realtime applicaties in C#
  • Architectuur is gebaseerd op scènes, GameObjects, MonoBehaviour-componenten en prefabs
  • C# — enige taal voor gamelogica, componenten en editoruitbreidingen
  • Mobiele optimalisatie — IL2CPP, Asset Bundles, URP en Profiler voor iOS en Android
  • Vergelijking — Unity leidt op de mobiele markt (48%), Unreal in AAA, Godot in indie
  • Non-gaming toepassing — architectuur, automobielindustrie, retail en interactieve 3D-presentaties
  • Instapdrempel — laag, met gratis Unity Learn-cursussen en grote community

We ontwikkelen een mobiele applicatie turnkey

IT Sectr creëert sinds 2017 iOS- en Android-applicaties voor startups en bedrijven. We adviseren u en stellen de beste oplossing voor.

Bespreek het project

Lees ook