【UE5】デバッグメッセージ【C++】

この記事は約2分で読めます。

5日ほど前に次を書いた。

【UE5】FStringのPrintf
は便利だが、UKismetSystemLibrary::PrintStringで画面にログを表示したい時に、sprintfのようなものがあったらいいなって探したらこれを見付けた。printfと同じフォーマットで文字列が作れる。(というか既に...

この中でUKismetSystemLibrary::PrintStringについて言及した。これで画面にログを表示できる。これはブループリントのライブラリをC++から利用することになるらしいが、C++純正のものがあったらいいな、とググってみたら次のサイトがヒットした。

UE5/UE4 C++でデバッグ文字列(FString)をビューポート(Viewport)に表示する(UEngine::AddOnScreenDebugMessage) 凛(kagring)のUE5/UE4とゲーム制作と雑記ブログ

素晴らしい。

公式のAPIドキュメントを眺めて探し出すのは大変だから、検索した方が早い。それでもできるだけAPIを把握しようとAPIリファレンスの頭から眺めたりもしているんだが、数が尋常じゃないから、なかなか把握しきれるもんじゃない。

話を戻すが、UEngine::AddOnScreenDebugMessageを使えば、UKismetSystemLibrary::PrintStringと同じように表示できる。上記サイトにあるように GEngineポインタから呼び出せる。っても、なんだそのポインタは?となった。VS2022で宣言を見てみたら Engine.h にあった。

/** Global engine pointer. Can be 0 so don’t use without checking. */
extern ENGINE_API class UEngine* GEngine;

定義は Engine.cpp にあった。

/**
* Global engine pointer. Can be 0 so don’t use without checking.
*/
ENGINE_API UEngine* GEngine = NULL;

とりあえずNULLで初期化されていて、コンストラクタのどこかで設定されているんだろう。プログラム読んでないけど。
コメントには0の場合もあるからチェックして使えとあるが、一度設定されたら0に戻されることはないはず。適当に使わせてもらう。

Just a moment...

コメント

タイトルとURLをコピーしました