Play In Editor(PIE) を停止した際に以下の様なダイアログが表示されることがあります。
これは、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
これでメッセージログにメッセージを登録すれば、先ほどのダイアログが表示されます。