【UE5】FStringのPrintf

UE_LOGは便利だが、UKismetSystemLibrary::PrintStringで画面にログを表示したい時に、sprintfのようなものがあったらいいなって探したらこれを見付けた。printfと同じフォーマットで文字列が作れる。(というか既にC/C++標準関数みたいなのも使いまくっちゃっていたりもするんだが。後々困ることになるんだろうか)

FString temp = FString::Printf(TEXT("test文字列=%d"), 1234);
UE_LOG(LogTemp, Log, TEXT("%s"), *temp);
UKismetSystemLibrary::PrintString(this, *temp, true, true, FColor::Red, 5.0f, TEXT("None")); 

これを自分で書いておいてなんだが、Printfの中のTEXT()を忘れがち。忘れると変なコンパイルエラーが出て悩んだりする。

UE_LOGを次のように書いてもコンパイルエラーになる。

UE_LOG(LogTemp, Log, *temp); 

3番目のパラメータ(format)はリテラルじゃないとダメらしい。

この記事が気に入ったらサポートをしてみませんか?