UE5/UE4 C++でデバッグ文字列(FString)をビューポート(Viewport)に表示する(UEngine::AddOnScreenDebugMessage)
公式ドキュメントはこちら。
・FString
https://docs.unrealengine.com/4.27/ja/ProgrammingAndScripting/ProgrammingWithCPP/UnrealArchitecture/StringHandling/FString/
デバッグ文字列(FString)をビューポート(Viewport)に表示するには
「UEngine::AddOnScreenDebugMessage()」関数を使います。
ドキュメントはこちら。
・UEngine::AddOnScreenDebugMessage
https://docs.unrealengine.com/4.27/en-US/API/Runtime/Engine/Engine/UEngine/AddOnScreenDebugMessage/1/
こんな感じで記述します。
第一引数の「uint64 Key」は同じ値の場合は重複表示を避けることができます、指定なしは「-1」のようです。#include "Engine/Engine.h"
// ビューポートに FString を表示
FString aFStringTest = FString::Printf(TEXT("Test = %02d, %.3f"), 1, 123.456f);
GEngine->AddOnScreenDebugMessage(-1, 5.0f, FColor::Red, aFStringTest);
第二引数の「float TimeToDisplay」は表示時間(秒)を指定します。
第三引数の「FColor DisplayColor」は表示する色を指定します。
第四引数の「const FString & DebugMessage」は表示する文字列(FString)を指定します。
結果はこんな感じになります。

ちょっとわかりづらいですが、ちゃんと画面に表示されています。
以下の第五引数と第六引数はデフォルト引数として指定しなくても問題ないようになっています。
第五引数の「bool bNewerOnTop」は新しい表示が上からになるかどうかを指定します。デフォルトは「true」になります。
第六引数の「const FVector2D & TextScale」は表示倍率を指定します。デフォルトは「1.0f,1.0f」となります。
上記二つの追加引数を指定するとこんな感じになります。
#include "Engine/Engine.h"
// ビューポートに FString を表示(第五、第六引数指定版を追加)
FString aFStringTest = FString::Printf(TEXT("Test = %02d, %.3f"), 1, 123.456f);
GEngine->AddOnScreenDebugMessage(-1, 5.0f, FColor::Red, aFStringTest);
FVector2D aScale(2.0f, 2.0f);
GEngine->AddOnScreenDebugMessage(-1, 5.0f, FColor::Red, aFStringTest, true, aScale);
結果はこんな感じになります。

第六引数を指定した文字列がちゃんと拡大されて表示されています。
基本的にはこの処理自体はBPでの「PrintString」の「Print to Screen」のみ版といったもののようです。

C++からこの関数を使うとしたらデバッグ用途でしょうか。
| UE4 | 10:00 | comments:0 | trackbacks:0 | TOP↑