Unreal Engineでアプリケーション終了時に標準出力(stdout)へメッセージを出力するには、FCoreDelegates::OnExitデリゲートを使用します。
#pragma once
#include "CoreMinimal.h"
class FMyExitLogger
{
public:
static void Register();
static void OnExit();
};#include "MyExitLogger.h"
void FMyExitLogger::Register()
{
// 終了時コールバックを登録
FCoreDelegates::OnExit.AddStatic(&FMyExitLogger::OnExit);
}
void FMyExitLogger::OnExit()
{
// 標準出力にメッセージを出す
printf("アプリケーションが終了しました\n");
fflush(stdout);
// UE のログシステムも使える
UE_LOG(LogTemp, Log, TEXT("アプリケーションが終了しました"));
}#include "MyExitLogger.h"
void UMyGameInstance::Init()
{
Super::Init();
FMyExitLogger::Register();
}FCoreDelegates::OnExit が最も簡単な終了検知方法printf を使えばOSの標準出力に直接出力fflush(stdout) でバッファを強制的にフラッシュUE_LOG を併用すれば Visual Studio の出力ウィンドウにも表示| 出力先 | 使用する関数 | 特徴 |
|---|---|---|
| コンソール | printf | OS標準出力、パイプ可能 |
| UEログ | UE_LOG | Visual Studio出力ウィンドウ、ログファイル |
| 両方 | 上記併用 | 最も確実 |
StartupModule() や GameInstance::Init() など、適切な初期化タイミングで Register() を呼び出す