如何在虚幻引擎中从字符串变量记录消息?

14
我正试图从一个字符串变量中记录消息,下面是我使用的代码。
std::string s = "ss";//std::to_string(FPaths::GetPath("../"));
 UE_LOG(LogTemp, Warning, *s);

但它没有起作用,有人能告诉我如何做吗? 在此输入图片描述

2个回答

31

最终我在这里回答了自己的问题。

它编译不通过是因为在将字符串输入UE_LOG之前需要使用TEXT宏。

FString s = "ss";
 UE_LOG(LogTemp, Warning, TEXT("%s"), *s);

 //or

 UE_LOG(LogTemp, Warning, TEXT("ss"));

 //this should work
 UE_LOG(LogTemp, Warning, TEXT("%s"), *FPaths::GetPath("../"));

应该使用Unreal版本的数据类型而不是使用std库。


如果你的答案是正确的,你可以接受自己的答案 :P 并且尽量使用Unreal的字符串、数组、映射等,而不是std库的,因为Unreal有它自己的魔力... - Marson Mao
只有标准算法与虚幻引擎的容器兼容,因为它们支持begin()和end(),否则我认为您应该使用虚幻引擎的等效物。 - Marson Mao
2
UE_LOG(LogTemp, Warning, TEXT("%s"), *s); - zwcloud

6

如果你非要这么做,那么可以将std::string转换为FString,然后像这样记录日志。

std::string someString = "Hello!";
FString layerName(someString .c_str());
UE_LOG(LogTemp, Warning, TEXT("%s"), *layerName);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接