日志输出/打印到屏幕
在虚幻引擎中常用的打印日志方法有三种,分别是:UE_LOG, AddOnScreenDebugMessage,以及在蓝图中使用 Print String。
使用 UE_LOG 输出到日志
使用UE_LOG 打印日志可以控制打印的内容,如果每个日志按照自己的级别来分类显示,那开发者就可以迅速的查找到对应的日志内容。这些分类包括:
- Fatal (致命BUG)
- Error (错误)
- Warning (警告)
- Display (显示)
- Log (日志)
- Verbose (详细)
- VeryVerbose(十分详细)
严重程度从上到下逐渐降低,过滤条件从上到下逐渐放松
UE_LOG 简单使用
第一个参数使用内置的标签LogTemp
,第二个从上面选择,第三个是信息
UE_LOG(LogTemp, Display, TEXT("玩家进入"));
如何来自定义UE_LOG类别名 ?
- 在 .h 头文件中声明日志,声明日志类别宏有三个参数:
DECLARE_LOG_CATEGORY_EXTERN(CategoryName, DefaultVerbosity, CompileTimeVerbosity);
- 参数 CategoryName 是你定义的类别名
- 参数 DefaultVerbosity 日志级别
- 参数 CompileTimeVerbosity 是要在代码中编辑的最大详情类别
DECLARE_LOG_CATEGORY_EXTERN(TestLog, Log, All);
- 在 .cpp 中定义日志宏:
DEFINE_LOG_CATEGORY(TestLog)
3.cpp中使用
UE_LOG(TestLog, Error, TEXT("This is a Test"));
使用 AddOnScreenDebugMessage 来输出到屏幕
除了使用 UE_LOG,咱还可以使用 AddOnScreenDebugMessage 方法在当前屏幕视口中去打印日志。
AddOnScreenDebugMessage 会添加一个FString到On-screen调试消息系统。
函数声明长这样,看着就头疼
参数说明:
key:防止同一消息被多次添加的唯一键。一般使用-1,是否为-1决定是否添加新消息并覆盖原有消息。
接下来三个很好理解:
TimeToDisplay 显示时长(单位为秒)
DisplayColor 显示颜色
DebugMessage 显示的字符串
bNewerOnTop只适用于Key == INDEX NONE(-1)此函数将向屏幕消息列表中添加一条调试消息。
最后一个参数文档居然也没解释是干嘛的,不过看命名就大概知道应该是字体的缩放大小。(不过一般这个都空着就行)
简单使用方法如下:
GEngine->AddOnScreenDebugMessage(-1, 10.0f, FColor::Red, FString::Printf(TEXT("Server not connected yet.")));