„Parrot“ verwendet Subsysteme in der Unreal Engine. Subsysteme bieten von der Engine verwaltete Lebenszeiten und fügen Erweiterungspunkte für gängige Funktionen hinzu. Wenn du in Unity ein Singleton-Muster verwendet hast, erfüllen Subsysteme einen ähnlichen Zweck. Die Subsysteme sind direkt mit den folgenden Bereichen in der Engine verbunden:
Engine
Editor
Spielinstanz
Welt
Lokaler Spieler
Wenn diese Bereiche in verschiedene Zustände eintreten, tun dies auch die Subsysteme, die entsprechend reagieren können.
Gewöhnlich werden Subsysteme verwendet, wenn du gängige C++-Funktionen in Blueprint einbinden möchtest und du die erwartete Lebenszeit kennst.
Audio-Subsystem Beispiel
„Parrot“ verwendet ein Audio-Subsystem aus den folgenden Gründen:
Das Subsystem ist an die Lebenszeit der Spielinstanz gebunden, ohne sich auf der Spielinstanz selbst zu befinden.
Der Zugang zum Subsystem ist in C++ und Blueprint möglich.
Sound-Einstellungen wie z. B. die Lautstärke können jederzeit von überall im Spiel geändert werden.
Die Handhabung von Audioeinstellungen über ein Subsystem bietet einen zentralen Zugang zum Debuggen.
Audio-Einstellungen können an jedem beliebigen Punkt von jedem externen System gespeichert werden.
Um zu sehen, wie das in der Praxis funktioniert, schau mal in UParrotAudioSubsystem rein. Das Audio-Subsystem interagiert am stärksten mit den UI-Systemen, da der Spieler dort den Ton manipulieren kann. Die Flexibilität ist jedoch gegeben, wenn der Ton an anderer Stelle geändert werden muss. Wann immer du ein System zu deinem Spiel hinzufügen, solltest du überlegen, ob ein Subsystem eine nützliche Abstraktion wäre.