| Zajęcia online | Lekcja 1x45min |
| Opis jednozdaniowy | Omówienie tematu budowania rozgrywki wokół eventów w grze. |
| Materiały źródłowe | Podstawowe: “Level up your code with design patterns and SOLID”, Wilmer Lin https://unity.com/resources/design-patterns-solid-ebook https://www.youtube.com/playlist?list=PLX2vGYjWbI0TmDVbWNA56NbKKUgyUAQ9i “Create modular game architecture in Unity with ScriptableObjects” https://unity.com/resources/create-modular-game-architecture-scriptableobjects-unity-6 Opcjonalne: Unity programming patterns repository, Habrador https://github.com/Habrador/Unity-Programming-Patterns “Game architecture with ScriptableObject | Open Projects Devlog”, Unity https://www.youtube.com/watch?v=WLDgtRNK2VE |
| Czemu służy ta lekcja | Celem tej lekcji jest przybliżenie uczestnikom tematu obsługi eventów i budowanie wokół nich rozgrywki. Pozwoli to uczestnikom na budowanie lepszej architektury dla ich gier. Ta lekcja jest niejako nawiązaniem do lekcji poprzedniej lekcji (2.2 C3GV – ScriptableObjects w praktyce) jako że zdarzenia można również realizować w ramach ScriptableObjects. W przeciwieństwie do poprzedniej, ta powinna mieć charakter bardziej demonstracyjny, jak można obsługiwać zdarzenia w projekcie. |
Jak się przygotować?
Poza zapoznaniem się z dołączonymi materiałami, do poprowadzenia tej lekcji należy przygotować przykładowy projekt, w którym zostanie zaprezentowany prosty gameplay (przykładowo: roll-a-ball, ale z samym poruszaniem się i spawnowaniem zbierajek). Następnie w ramach samej lekcji ten projekt będzie rozszerzany o nowe funkcjonalności jak na przykład:
- Zbieranie obiektów (emitowane przez trigger, usunięcie tego obiektu ze sceny)
- Zliczanie punktów (jako dodatkowy efekt powyższego zdarzenia, aktualizacja UI)
- Licznik czasu (wraz z aktualizacją UI)
- Warunek zakończenia poziomu (koniec czasu lub zebranie odpowiedniej ilości obiektów)
Taki projekt zapewni uczestnikom lepsze zrozumienie jak działają eventy oraz jak można je w praktyce zastosować. Należy również zaznaczyć, żeby nie przesadzać z tworzeniem zbyt dużej ilości eventów, bo może to skończyć się dużymi problemami w debugowaniu projektu.
W ramach tego projektu można przykładowo wykorzystać: Observer pattern, Event Bus pattern, ScriptableObjects, UnityAction, UnityEvent.
Jaką wiedzę należy przekazać w trakcie zajęć?
Dzięki udziałowi w zajęciach uczestnicy:
- Lepiej poznają zagadnienie jakim są UnityAction oraz UnityEvent
- Dowiedzą jak można wykorzystać powyższe na praktycznych przykładach
- Dowiedzą się jaka jest specyfika pracy z eventami
- Dowiedzą się że przy zapisywaniu się na eventy, nie mamy kontroli nad kolejnością wywoływania zdarzeń
Powyższe efekty kształcenia to minimum wiedzy i/lub umiejętności, jakie muszą zostać przekazane podczas zajęć.
Warto zapamiętać!
Z angielskiego “key takeaways”, czyli kluczowe zagadnienia, które powinny zostać przyswojone przez odbiorców kursu.
- Czym są UnityAction oraz UnityEvent
- Jak można z nich korzystać w projekcie
- Gdzie mają one zastosowanie i w czym pomagają
- Jak korzystać z nich w praktyce