Przejdź do głównej treści

Uczymy Robić Gry

Zajęcia onlineLekcja 1x45min
Opis jednozdaniowyOmówienie tematu budowania rozgrywki wokół eventów w grze.
Materiały źródłowePodstawowe:

“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 lekcjaCelem 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