🎡

【UnrealEngine5】SubSystemってなに?

に公開

はじめに

UnrealEngineでゲーム作るぞー!
じゃあ、まずゲームプレイのフレームワークどうしようか。え?SubSystemってのがよく使われてるって?
さ..す....ぶ?... なにそれ?使ったことない

↑という経緯でSubSystemについて勉強するメモ書きです。

SubSystemって?

Unreal Engine (UE) のサブシステムは、管理されたライフタイムを持つ自動的にインスタンス化されたクラスです。

公式によると、↑とのこと。

要するに「エンジンが決めたタイミングで勝手に生成・管理してくれるシングルトンのクラス」ってことかな?

SubSystemのライフサイクル

UnrealEngineに用意されているSubSystemは複数あり、それぞれ特定のタイミングで処理される。
以下のようなライフサイクル。

親クラス名 寿命
UEngineSubsystem エンジン起動 ~ 終了
UEditorSubsystem エディタ起動 ~ 終了
UGameInstanceSubsystem ゲーム起動 ~ 終了
UWorldSubsystem レベルロード ~ アンロード
ULocalPlayerSubsystem プレイヤー生成 ~ 削除

上記のようなタイミングで呼び出したいクラスを自作して、このSubSystemクラスたちを継承すればいいってことです。

実装サンプル

参考文献

https://www.main-function.com/entry/2024/06/29/085923
https://dev.epicgames.com/documentation/ja-jp/unreal-engine/programming-subsystems-in-unreal-engine

Discussion