Play In Editor 停止時に「エディタで再生中にエラー/警告が報告されました」ダイアログを出す

More than 3 years have passed since last update.

Play In Editor(PIE) を停止した際に以下の様なダイアログが表示されることがあります。

image

これは、PIE 中に何かしらのエラーや警告が発生したことを意味します。

これはメッセージログにエラーや警告が出力されると PIE 終了時に必ず表示されるので、実行時エラーや警告の見落としを防ぐ手段として使えます。

では、どうやればここにエラーや警告を表示できるのか?

以下は、ELogVerbosity::Type の種類に応じてエラーや警告を出すためのコードです。

#include "Logging/MessageLog.h"


// PIE 専用コードなので、括っておく
#if WITH_EDITOR
// 表示するメッセージ
FString MessageString;

// PIE はメッセージログの「Play In Editor」に出力するためのカテゴリ。
// このカテゴリで出力しないとダイアログが表示されない。
FMessageLog MessageLog("PIE");
switch (VerbosityType)
{
case ELogVerbosity::Warning:
// 警告として表示
MessageLog.Warning(FText::FromString(MessageString));
break;

case ELogVerbosity::Error:
// エラーとして表示
MessageLog.Error(FText::FromString(MessageString));
break;
}
#endif

これでメッセージログにメッセージを登録すれば、先ほどのダイアログが表示されます。