Unity Events

Observer Pattern
Delegates/Event (30 - 45 minuten)
Game Loop (10 - 15 minuten)
1 / 17
next
Slide 1: Slide
Programming - FundamentalsMBOStudiejaar 2

This lesson contains 17 slides, with text slides.

time-iconLesson duration is: 120 min

Items in this lesson

Observer Pattern
Delegates/Event (30 - 45 minuten)
Game Loop (10 - 15 minuten)

Slide 1 - Slide

Observer pattern
Wat is het?:
- Een systeem dat een target observeert
- Deze observer reageert op evenementen van het target
- Observer abonneert functies op een event van de target
- Meerdere observers kunnen op een target abonneren


Slide 2 - Slide

Observer pattern
Waarvoor:
- Schonere code
- Objecten hebben minder connecties nodig
- Meerdere functies tegeleik aanroepen zonder referentie
- Makkelijk uit te breiden


Slide 3 - Slide

Observer pattern
Hoe het werkt:
- Delegates: Functie container
Variable waarin je referenties naar functies in op kan slaan.


attack is een instantie van MyDelegate. Attack kan een reference naar iedere void functie opslaan.



Slide 4 - Slide

Observer pattern
Hoe het werkt:
- Functies abonneren op delegate



- attack krijgt hier de waarde van de functie PrimaryAttack
- als attack nu gecalled wordt, wordt PrimaryAttack uitgevoerd.


Slide 5 - Slide

Observer pattern
Hoe het werkt:
- Meerdere functies abonneren



- attack heeft nu de waarde van Primary en Secondary Attack
- Deze worden nu beide uitgevoerd.

Slide 6 - Slide

Observer pattern
Hoe het werkt:
- Invoke het event met null check
- Simpliefied invoke van event met null check

- Nu worden alle geabonneerde functies uitgevoerd

Slide 7 - Slide

Observer pattern
Hoe het werkt:
- Connect andere scripts door het variable static te maken

- Nu kan je vanuit ieder ander script aan het onGameOver delegate abonneren.

Slide 8 - Slide

Observer Pattern
Gevaren
- Delegates triggeren vanuit ander script
- Alle geabonneerde functies clearen


Slide 9 - Slide

Observer Pattern
Gevaren oplossen
- event keywoard toevoegen
- Dit zorgt er voor dat je het event alleen kan triggeren vanuit het eigen script
- Er kan nog wel vanuit andere scripts op geabonneerd worden


Slide 10 - Slide

Observer Pattern
Events vs. Delegates
- Delegates worden voornamelijk gebruikt als functie containers
- Delegates kunnen meegegeven worden als parameter
- Events zijn een veiligere manier van delegates gebruiken
- Events zijn bedoelt voor event systems waarbij meerdere objecten op iets kunnen reageren

Slide 11 - Slide

Observer Pattern
Use cases
- Player events (onDeath, onDamage)
- Enemy events (onSpawn, etc.)
- sceneLoaded (vanuit SceneManager)
- UI events (buttonPress, close/openMenu)
- Achievements
- Many many more

Slide 12 - Slide

Game loop

Een game loop is een centraal onderdeel van de meeste computerspellen en verwijst naar het continu uitvoeren van een aantal stappen die nodig zijn om een ​​spel te laten draaien en de spelervaring te bieden.

Slide 13 - Slide

Game loop
Input verwerking: hier worden alle inputsignalen van de speler verwerkt
Game logica: dit is waar de eigenlijke gameplay plaatsvindt
Rendering: dit is waar alle
beelden van het spel worden
getekend en weergegeven op het scherm.

Slide 14 - Slide

Game Loop - voorbeelden

Slide 15 - Slide

Start - Game loop - End
Voordat je bij een game de core game loop kan ervaren moet je vaak eerst door een start scherm heen en aan het einde is er vaak een Game Over of end screen.
Dit zijn aparte scene's waarin zich vaak alleen UI bevindt, vanuit deze scene's wordt je vaak doorgestuurd naar de game loop.

Slide 16 - Slide

Opdracht
Maak een Start en Game Over Scene.
Maak gebruik van het Observer Pattern om deze Game Over scene op te zetten.
Gebruik ook het Observer Pattern om een simpel achievement systeem te maken dat de speler beloont wanneer deze een bepaalde milestone heeft behaald.

Slide 17 - Slide