ue5 c++学习笔记-01使用UE_LOG宏打印日志

UE_LOG宏用于将日志信息输出到文件,可指定日志类别和详细程度。例如,使用FString参数格式化日志消息。在屏幕上打印日志通过GEngine->AddOnScreenDebugMessage实现,便于实时查看调试信息。日志详细级别可在Engine.ini配置,运行时也可动态调整。

1、语法

UE_LOG(LogTemp,Warning,TEXT("hello world"));

UE_LOG是将日志消息输出到日志文件中的宏。

它采用的第一个输入参数是日志记录类别的名称。引擎中已经内置了许多这些类别,在 CoreGlobals.h 中定义,UE_LOG 宏的第二个参数声明消息的详细程度。上面示例代码中的最后一个参数是日志消息内容,字符串也使用一些printf 格式说明符,以便添加更多参数,如:

UE_LOG(LogTemp,Warning,FString::Printf(TEXT(x = %f, y = %f"), x, y));)

2、消息格式化示例

1、含FString参数的消息:

UE_LOG(LogTemp, Warning, TEXT("The Actor's name is %s"), *YourActor->GetName());

2、含布尔参数的消息:

UE_LOG(LogTemp, Warning, TEXT("The boolean value is %s"), ( bYourBool ? TEXT("true") : TEXT("false") ));

3、含整型参数的消息:

UE_LOG(LogTemp
<think> 在虚幻引擎(Unreal Engine)的C++中,使用UE_LOG打印布尔值需要将布尔值转换为字符串或整数,因为UE_LOG没有直接支持布尔类型的格式化符号。 通常的做法是将布尔值转换为字符串(如"true"或"false")或者转换为整数(0或1)来打印。 我们可以使用三元运算符来将布尔值转换为字符串,然后使用`TCHAR_TO_ANSI`将字符串转换为ANSI字符串(因为UE_LOG的格式化字符串是ANSI字符串)。 注意:在UE_LOG中,我们使用`%s`来打印字符串。 以下是一个示例代码,展示如何打印布尔值: </think> 在虚幻引擎 C++ 中,使用 `UE_LOG` 打印布尔值时需要手动转换类型,因为 `UE_LOG` 没有直接支持布尔值的格式化符。以下是解决方案: ### 解决方案代码 ```cpp #include "YourClassName.h" // 替换为实际头文件名 // 在函数内部使用: bool bIsActive = true; UE_LOG(LogTemp, Warning, TEXT("布尔值状态:%s"), bIsActive ? TEXT("true") : TEXT("false")); ``` ### 代码解释: 1. **三元运算符转换** `bIsActive ? TEXT("true") : TEXT("false")` 将布尔值转换为 `FString` 对应的字符串字面量 2. **TEXT ** 使用 `TEXT()` 包裹字符串确保跨平台兼容性 3. **格式化符** `%s` 用于输出转换后的字符串 4. **日志类别** `LogTemp` 是临时日志通道,也可创建自定义日志类别 ### 进阶封装(可选) 创建通用打印函数: ```cpp // 头文件声明 void PrintBool(const FString& Message, bool bValue); // CPP文件实现 void PrintBool(const FString& Message, bool bValue) { UE_LOG(LogTemp, Warning, TEXT("%s: %s"), *Message, bValue ? TEXT("true") : TEXT("false")); } // 使用示例 PrintBool(TEXT("角色死亡状态"), bIsCharacterDead); ``` ### 注意事项: 1. 避免在性能敏感循环中频繁调用 2. 正式版本中应移除调试日志 3. 使用 `LogVerbosity` 控制日志级别(如 `Warning`, `Error`)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值