Parrot wykorzystuje podsystemy w Unreal Engine. Podsystemy zapewniają czas życia zarządzany przez silnik i dodają punkty rozszerzeń dla typowych funkcji. Jeśli zdarzyło ci się korzystać z wzorca Singleton w Unity, to podsystemy spełniają podobną funkcję. Podsystemy są bezpośrednio powiązane z następującymi zakresami w silniku:
Silnik
Edytor
Instancja gry
Świat
Gracz lokalny
Gdy te zakresy przechodzą w różne stany, podobnie dzieje się z podsystemami, które mogą odpowiednio reagować.
Częstym powodem użycia podsystemów jest konieczność ujawnienia wspólnych funkcjonalności C++ w Blueprincie przy znanym oczekiwanym czasie życia.
Przykład podsystemu audio
Parrot wykorzystuje podsystem audio z następujących powodów:
Podsystem jest powiązany z czasem życia instancji gry, ale nie znajduje się w samej instancji gry.
Podsystem jest dostępny w C++ i Blueprincie.
Ustawienia dźwięku, takie jak głośność, można zmienić w dowolnym momencie z dowolnego miejsca w grze.
Manipulowanie ustawieniami audio za pośrednictwem podsystemu zapewnia scentralizowany punkt dostępu do debugowania.
Ustawienia audio można zapisać w dowolnym momencie za pomocą dowolnego systemu zewnętrznego.
Aby zobaczyć, jak to działa w praktyce, spójrz na UParrotAudioSubsystem. Podsystem audio najczęściej współpracuje z systemami UI, ponieważ to właśnie tam użytkownik może manipulować dźwiękiem. Jednakże istnieje możliwość zmiany ustawień audio w innych miejscach. Dodając nowy system do gry, należy rozważyć, czy podsystem nie byłby przydatnym rozwiązaniem.