手順
追加したモジュールには自動的にクラスとメソッドが追加されるが、プロジェクトのプライマリモジュールには追加されないので手動で追加する
1. <プロジェクト名>.hにFDefaultGameModuleImpl
継承クラスを宣言し、void StartupModule()
とvoid ShutdownModule()
をオーバーライドする。
MyProject.h
#include "CoreMinimal.h"
#include "Modules/ModuleManager.h"
class FMyProjectModule: public FDefaultGameModuleImpl
{
public:
virtual void StartupModule() override;
virtual void ShutdownModule() override;
};
#include "Modules/ModuleManager.h"
2. <プロジェクト名>.cppに実装しIMPLEMENT_PRIMARY_GAME_MODULE
の最初の引数を1で作ったクラス名に書き換える。
MyProject.cpp
#include "MyProject.h"
void MyProject::StartupModule()
{
UE_LOG(LogTemp, Warning, TEXT("Module Started"));
}
void MyProject::ShutdownModule()
{
UE_LOG(LogTemp, Warning, TEXT("Module Shutdown"));
}
IMPLEMENT_PRIMARY_GAME_MODULE(FMyProjectModule, MyProject, "MyProject");
IMPLEMENT_PRIMARY_GAME_MODULE(FMyProjectModule モジュールクラス名に変更, MyProject (変更なし), "MyProject"(変更なし))