Parrot utilizza sottosistemi in Unreal Engine. I sottosistemi forniscono la durata gestita dal motore e aggiungono punti di estensione per le funzioni comuni. Se hai utilizzato un Pattern Singleton in Unity, i sottosistemi soddisfano un'esigenza simile. I sottosistemi sono legati direttamente ai seguenti ambiti del motore:
Engine
Editor
Istanza partita
World
Giocatore locale
Come tali ambiti accedono a stati differenti, così fanno i sottosistemi e possono reagire di conseguenza.
Una classica ragione dell'utilizzo dei sottosistemi è quando occorre esporre la comune funzionalità C++ nella Blueprint e si conosce la durata prevista.
Esempio di sottosistema audio
Parrot utilizza un sottosistema audio per le ragioni seguenti:
Il sottosistema è legato alla durata dell'istanza di gioco senza trovarsi sull'istanza di gioco stessa.
Il sottosistema è accessibile in C++ e Blueprint.
Le impostazioni audio come il volume possono essere modificate in qualsiasi momento e da qualunque punto del gioco.
Manipolare le impostazioni audio tramite un sottosistema fornisce un punto di accesso di debug centralizzato.
Le impostazioni audio possono essere salvate in qualsiasi punto da qualunque sistema esterno.
Per vedere l'operazione in pratica, guarda UParrotAudioSubsystem. Il sottosistema audio interagisce maggiormente con i sistemi UI poiché è qui che l'audio può essere manipolato dal giocatore. Tuttavia, c'è flessibilità se l’audio deve essere modificato altrove. Ogniqualvolta aggiungi un sistema al tuo gioco, considera la possibilità che un sottosistema sia un'utile astrazione.