Parrot は Unreal Engine のサブシステムを使用します。 サブシステムはエンジンに管理されるライフタイムを提供し、共通の関数の拡張ポイントを追加します。 Unity でSingleton パターン を使用している場合、サブシステムは同様のニーズを満たします。 サブシステムは、エンジン内の以下のスコープに直接結び付けられています。
エンジン
エディタ
ゲーム インスタンス
ワールド
ローカルプレイヤー
これらのスコープが異なる状態になると、サブシステムも変化し、それに応じて反応することができます。
サブシステムを使用する一般的な理由は、一般的な C++ 機能をブループリントに公開する必要があり、予想されるライフタイムがわかっているためです。
オーディオ サブシステムの例
Parrot がオーディオ サブシステムを使用する理由は以下のとおりです。
サブシステムは、ゲーム インスタンス自体には依存せず、ゲーム インスタンスのライフタイムに結び付けられています。
サブシステムは C++ とブループリントからアクセスできます。
ボリュームなどのサウンド設定は、ゲーム内のどこからでもいつでも変更できます。
サブシステムを通じてオーディオ設定を操作することで、一元化されたデバッグ アクセス ポイントが提供されます。
オーディオ設定は、任意の外部システムによっていつでも保存できます。
実際に動作する様子を確認するには、UParrotAudioSubsystem を確認します。 オーディオ サブシステムは、プレイヤーがオーディオを操作できる UI システムと最も頻繁にやり取りします。 他の場所でオーディオを変更する必要がある場合にも、柔軟に対応できます。 ゲームにシステムを追加する際は、サブシステムが有用な抽象化になるかどうかを検討してください。