UE5 Debug的一些心得

1、BUG粗略可分为两类:

一种是显性的,编译直接就通不过,必须马上解决。

第二种是隐性的,新功能完成后,编译成功顺利运行,洋洋自得,而问题隐藏在幕后,测试之后才逐渐发现有问题,

从代码角度是没毛病的,没报错,但不符合设计需求。

而随着工程复杂度的上升,找问题,甚至快速看懂以往的代码都变得越来越困难,尤其是逻辑很复杂的系统,有注释的话好一些。这也拖慢了DEBUG的速度,连发现BUG在哪里都是个难题。

2、低级错误。就个人而言,以往的BUG中有很大概率最终发现是低级错误,

比如功能相似的变量或BP命名相似,结果用错了,则必然不符合需求。

查了一圈都没毛病,最终才发现是用错了,如果早点发现,则节约大量时间。

从命名上就要规避,要区分开来。

没用的要删掉,或名字改为冷门的,以减少误操作。

比如修改过程中某个分支判断的真假接反,也会导致不符合需求,密密麻麻一大堆而屏幕显示内容少加大了失误概率。

3、地方不对。虽然理论上放哪里都行,但实际上重要逻辑放在UI,或物件里,则就容易出问题,虽然不报错,但达不到效果。

而放在FPC、GM等重要地方就能发挥作用,换个地方就不行。

原因之一就是物体与UI很可能一开始并没有加载,所以相关参数也无法传出去,逻辑是废的。

相关推荐
zhangzhangkeji2 天前
UE5 C++(70-2):定义成员函数 getCleanDirectory(..) 和枚举类 EFileDirectoryType,来获得目录
ue5
avi91113 天前
UE4-UE5虚幻引擎-前置学习三,优化,基础CPP
ue5·ue4·游戏开发·虚幻·游戏优化·游戏代码
zhangzhangkeji3 天前
UE5线程进阶(3-2):任务图的相关源码整理。 FGraphEvent 与 TGraphTask 的区别和联系
ue5
zhangzhangkeji4 天前
UE5线程进阶(3-1):
ue5
zhangzhangkeji5 天前
UE5线程进阶(2-3):enum ENamedThreads命名空间 :: Type : int32 { RHIThread = 0 } 是渲染硬件接口线程
ue5
zhangzhangkeji6 天前
UE5线程进阶(2-1):枚举类EAsyncExecution,作业类TAsyncRunnable、TAsyncQueuedWork,及全局线程函数 Async(..),及线程调用的 4 种方法总结
ue5
zhangzhangkeji6 天前
UE5线程进阶(1):
ue5
yblackd10 天前
UnrealEngine Win风格 窗口选择打开文件
c++·ue5·虚幻
AI视觉网奇10 天前
ue 推送直播流 推流 linux 实战
笔记·学习·ue5
郁闷的网纹蟒10 天前
虚幻5---第16部分---敌人(中)
开发语言·c++·ue5·游戏引擎·虚幻