【问题标题】:How to log a message from a string variable in Unreal Engine?如何从虚幻引擎中的字符串变量记录消息?
【发布时间】:2016-11-24 19:25:30
【问题描述】:

我正在尝试从字符串变量中记录消息,下面是我使用的代码

std::string s = "ss";//std::to_string(FPaths::GetPath("../"));
 UE_LOG(LogTemp, Warning, *s);

但它不起作用,有人可以告诉我该怎么做吗?

【问题讨论】:

    标签: c++ game-engine unreal-engine4


    【解决方案1】:

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

    它无法编译,因为我需要在将字符串输入 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 的 Datatypes 版本而不是使用 std 库

    【讨论】:

    • 如果它是正确的,你可以接受你自己的答案 :P 并尝试使用 Unreal 的字符串、数组、映射...等。而不是标准的,因为虚幻有自己的魔力......
    • 只有 std 算法与 Unreal 的容器兼容,因为它们支持 begin() 和 end(),否则我认为你应该使用 Unreal 的等价物。
    • UE_LOG(LogTemp, Warning, TEXT("%s"), *s);?
    【解决方案2】:

    如果你真的需要,你可以将 std::string 转换为 FString,然后像这样记录。

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

    【讨论】:

      猜你喜欢
      • 2023-02-16
      • 2020-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多