Unreal Engine中调试常用方法

news2024/11/18 6:21:13

目录

常用调试方法

AddOnScreenDebugMessage

UE_LOG:在控制台看调试信息

在蓝图中直接调用PrintString

自定义日志分类

声明

定义

简化日志输出的宏

日志格式化输出


常用调试方法

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

AddOnScreenDebugMessage

借助全局变量GEngine指针调用函数AddOnScreenDebugMessage完成屏幕输出

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

key是否为-1决定是否添加新消息并覆盖原有消息。

UE_LOG:在控制台看调试信息

宏UE_LOG进行控制台日志输出(日志会写入本地缓存)。需传入三个参数:

  • 日志分类(可自定义)

  • 日志类型冗余度
    • Fatal:直接终止进程,致命问题
    • Error:错误问题,红色警告
    • Warning、Display、Log:(常用)
    • Verbose:将日志信息详细记录到日志文档,但不向控制台输出
    • VeryVerbose:将日志信息详细记录到日志文档,但不向控制台输出
  • 日志内容

 

在蓝图中直接调用PrintString

这个就不需要多说了

自定义日志分类

分两步:声明和定义

声明

声明自己的日志分类

DECLARE_LOG_CATEGORY_EXTERN(CategoryName,DefaulteVerbosity,CompileTimeVerbosity)
  • CategoryName:自定义日志分类名称
  • DefaultVerbosity:日志默认级别,一般为Log
  • CompileTimeVerbosity:日志编译级别,高于此级别一般不会被编译,一般用All

在头文件中完成,并且只需要完成一次。

举例:

DECLARE_LOG_CATEGORY_EXTERN(MyLog,Log,All)

定义

DEFINE_LOG_CATEGORY(CategoryName)

注:必须在.cpp中进行。只需要进行一次定义

举例:

DEFINE_LOG_CATEGORY(MyLog)

简化日志输出的宏

每次打UE_LOG都太长了,可以用宏来代替:

#define PRINTLOG(X) UE_LOG(LogTemp,Log,X)

另外也可以进化为可变参数宏:

#define PRINTLOG(X, ...) UE_LOG(LogTemp,Log,X,__VR_ARGS__)

 

 

日志格式化输出

类似C语言中的printf。

有三种占位符:

  • %d:整数输出
  • %f:浮点型输出
  • %s:输出UE类型字符。(宽字符串指针)

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/107331.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++运算符重载,匿名对象

目录 1、加号运算符重载 1.1 通过自己写成员函数,实现两个对象相加属性后返回新的对象 1.2通过成员函数实现加法运算符重载 1.3通过全局函数实现加法运算符重载,运算符重载也可以发生函数重载 1.4总结--对于内置的数据类型的表达式运算符是不可以改变…

Python+Requests实现接口自动化测试

一般对于自动化的理解,有两种方式的自动化。 第一,不需要写代码,完全由工具实现,这种方式的工具一般是公司自己研发的,方便黑盒测试人员使用。这种工具的特点是学习成本低,方便使用,但是通用性…

面向5G C-RAN组网的机房配置标准与模型

【摘 要】当前5G网络建设成本高,投资压力大,基站建设进度受铁塔公司制约;基站机房电费、租赁、服务费用逐年上升,运营维护压力大。面向未来5G建设,通过C-RAN组网,实现BBU集中化部署,可促进降本增效,实现低成本建网。首先分析了C-RAN区所处的网络位置,其次从BBU框多基…

java基于springboot的心理健康管理网站-计算机毕业设计

运行环境: 开发工具:IDEA /Eclipse 数据库:MYSQL5.7 应用服务:Tomcat7/Tomcat8 使用框架springbootvue 项目介绍 心灵治愈交流平台的主要使用者分为管理员和用户、心理咨询师,实现功能包括管理员:首页、个人中心、系统公告管理、用户管理、心…

网上订餐项目(附源代码及数据库)

目录 一、项目概要 二、项目展示 三、数据库 四、项目源码 五、毕设专栏 首页 登录界面 注册页面 一、项目概要 系统主要功能模块有: (1)首页菜品:主要包括购买菜品、菜品加入购物车的功能 (2)我的…

django-rest-framework

文章目录 (1)Web应用模式及API接口 (2)Restful规范 (3)drf安装和简单使用 (4)源码分析 (5)序列化器-Serializer (6)局部和全局响应配…

STL篇之vector

一、介绍 1. vector是表示可变大小数组的序列容器。 2. 就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组,它的大小是可以动态改变的,而且它…

NR HARQ (四)dynamic codebook

微信同步更新欢迎关注同名modem协议笔记 上篇提到type-1 HARQ-ACK codebook,即semi-static codebook,UE要为每个PDSCH候选位置生成反馈,也会包含实际没有下行传输的PDSCH,再加上配置CBG的场景,HARQ-ACK 码本中包含的无…

SpringBoot系列之数据库初始化-datasource配置方式

在我们的日常业务开发过程中,如果有db的相关操作,通常我们是直接建立好对应的库表结构,并初始化对应的数据,即更常见的情况下是我们在已有表结构基础之下,进行开发; 但是当我们是以项目形式工作时&#xff…

java微信支付v3系列——3.订单创建准备操作

微信支付的下单操作分为了5种,分别是JSAPI、APP、H5以及Native支付及小程序支付,之所以将支付放在单独一个章节,而不是按照支付类型划分一个章节,是因为支付所传递的数据都是相似的,方便我们更好的封装。 本章节是支付…

20221222英语学习

托福词汇 sociology n.社会学 given adj.规定的,特定的;假定的 narrative n.叙述;记叙体,叙述技巧 deplore vt.悲叹,哀叹,公开谴责 despoil vt.夺取,掠夺;毁坏,破坏…

Kubernetes:环境搭建

文章目录1、k8s 概念1.1、基本概念1.2、基本术语2、k8s 架构2.1、k8s 节点2.2、k8s 组件2.2.1、master 组件2.2.2、node 组件3、k8s 集群安装配置3.1、docker3.2、主机环境调整3.3、安装 kube 工具3.4、Master 节点初始化3.5、node 节点初始化3.6、重置节点4、k8s 集群升级4.1、…

基于node.js网上蛋糕店系统的设计与实现(论文+项目源码)

随着互联网应用技术的突飞猛进。信息化广泛使用,已渗透到各行各业。作为代表的以网上购物商城为例。它极大地改变了人们的出行方式以及线上购物发生的转变。网上购物的需求也随着人们的个性化定制而变得相对复杂。用户量以及需求量在网上商城也带来了很多商家的考验…

c++primer第2章 变量和基本类型

文章目录第2章 变量和基本类型2.1 基本内置类型2.1.1 算术类型2.1.2 类型转换2.1.3 字面值常量2.2 变量2.2.1 变量定义2.2.2 变量声明与定义的关系2.2.3 标识符2.2.4 名字的作用域第Ⅰ部分 c基础 语法特征 类型 变量 语句 控制结构 函数补充:自定义数据类型(语言扩展…

Elasticsearch:如何减少 Elasticsearch 集群中的分片数量

在我之前的文章 “Elasticsearch:我的 Elasticsearch 集群中应该有多少个分片?” , 它描述了在我们实际操作中的分片数量的准则。在文章 “Elasticsearch:如何部署 Elasticsearch 来满足自己的要求” 讲述了如何部署 Elasticsearc…

Prometheus系列之Grafana 版本9.0.0 设置Email邮件报警实战

目录1. 配置文件conf/defaults.ini修改2. Grafana Web页面配置报警邮箱接收者3. 创建Dashboard4. 创建Alert的文件夹5. 设置Notification policies6. 添加Alert7. Alert Rule测试1. 配置文件conf/defaults.ini修改 将conf/defaults.ini的如下内容 ##########################…

变量提升,函数提升,暂时性死区,详细解析

变量的提升 JavaScript 在执行之前 会进行预解析 函数声明 函数体会被提升到当前作用域顶部 var的声明会提升 并赋值undefined 因为var会有一个变量提升,他的声明初始化会被提升,但是值不会被提升,所以控制台返回undefined 函数提升 这是…

CSS -- CSS3基础动画讲解

文章目录CSS 3动画1 动画的基本使用2 动画序列3 动画常用属性4 动画简写属性5 速度曲线细节CSS 3动画 动画(animation) 是CSS3中具有颠覆性的特征之一,可通过设置多个节点来精确控制一个或一组动画常用来实现复杂的动画效果。 相比较过渡,动画可以实现…