UE4 调试常用的打印信息方法

举报
HelloWorld杰少 发表于 2022/07/28 23:07:52 2022/07/28
【摘要】 前言作为一名程序猿,在日常开发中肯定少不了在代码中加入日志,日志能及时的反馈给我们代码运行时的数据和信息。在本篇文章中,就让我们来学习一下如何在 UE 中去输出日志。 常用调式方法在虚幻引擎中常用的打印日志方法有三种,分别是:UE_LOG, AddOnScreenDebugMessage,以及在蓝图中使用 Print String。 在代码中使用 UE_LOG使用UE_LOG 打印日志可以...

前言

作为一名程序猿,在日常开发中肯定少不了在代码中加入日志,日志能及时的反馈给我们代码运行时的数据和信息。在本篇文章中,就让我们来学习一下如何在 UE 中去输出日志。

常用调式方法

在虚幻引擎中常用的打印日志方法有三种,分别是:UE_LOG, AddOnScreenDebugMessage,以及在蓝图中使用 Print String。

在代码中使用 UE_LOG

使用UE_LOG 打印日志可以控制打印的内容,如果每个日志按照自己的级别来分类显示,那开发者就可以迅速的查找到对应的日志内容。这些分类包括:

  • Fatal
  • Error
  • Warning
  • Display
  • Log
  • Verbose
  • VeryVerbose

接下来,咱们来看如何来定义 UE_LOG。

在 .h 头文件中声明日志,声明日志类别宏有三个参数:

DECLARE_LOG_CATEGORY_EXTERN(CategoryName, DefaultVerbosity, CompileTimeVerbosity);
  • 参数 CategoryName 是你定义的类别名
  • 参数 DefaultVerbosity 日志级别
  • 参数 CompileTimeVerbosity 是要在代码中编辑的最大详情类别

例如:

DECLARE_LOG_CATEGORY_EXTERN(LoginLog, Log, All);

在 .cpp 中定义日志宏:

DEFINE_LOG_CATEGORY(LoginLog)

参考案例如下:

void AFPSGameModeLogic::PreLogin(const FString& Options, const FString& Address, const FUniqueNetIdRepl& UniqueId, FString& ErrorMessage)
{
	Super::PreLogin(Options, Address, UniqueId, ErrorMessage);

	if (!ErrorMessage.IsEmpty())
	{
		return;
	}

	if (!UniqueId.IsValid())
	{
		ErrorMessage = "You are logging in with empty account";
		UE_LOG(LoginLog, Error, TEXT("PreLogin: logging in with empty account"));
	}

    ....
}

使用 AddOnScreenDebugMessage 来输出到屏幕

除了使用 UE_LOG,咱还可以使用 AddOnScreenDebugMessage 方法在当前屏幕视口中去打印日志。

具体使用方法如下:

GEngine->AddOnScreenDebugMessage(-1, 10.0f, FColor::Red, FString::Printf(TEXT("Server not connected yet.")));

在蓝图中使用 Print String

在蓝图中任意拖动到节点 PrintString 即可选择在屏幕或者日志输出栏中输出日志,只要勾选上就会执行对应的操作,非常的方便,具体节点内容如下:

最后

本文简单的介绍了三种在 UE 开发中经常用到的日志调试方法,分别是 UE_LOG, AddOnScreenDebugMessage 和 Print String,你学会了吗?

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。