Language:
Page Info
Engine Version:
Share
此中文页面内容对应的英文页面有后续更新,如需浏览最新文档可切换至英文页面浏览。

蓝图调试

在使用蓝图时,可能出现预料之外的状况。为诊断这些问题,蓝图可视化脚本工具除自带调试器外,还拥有最强大的功能之一:在图表中为节点添加 断点(Breakpoints)。在图表中为节点添加断点后,可在编辑器中正常进行(或模拟)游戏。到达存在断点的节点后,游戏将暂停并跳至图表中的节点,以便对脚本进行检查,确认问题出于何处。

另一个实用调试功能是 Watch Values,它可将蓝图中一个(或多个)变量标记到 观察(Watch),以便在游戏运行时在蓝图中看到变量数值。这对调试变量错误计算或数值十分重要,因为可以在变量实时变化时发现错误的源头。

在本页中,您将学习如何为蓝图设置调试,以及用于诊断问题的其他方法。

如需了解蓝图调试的更多内容,请查阅 蓝图调试 文档。

启用调试

如需启用蓝图调试,首先必须规定需要进行调试的蓝图实例位于关卡中。

在蓝图中,点击 Debug Object 下拉菜单,然后选择调试器中的实例。

DebugHowTo1.png

选定对象后,点击放大镜图标可在关卡中跳至该对象。

DebugHowTo2.png

在编辑器中进行游戏时,将蓝图放置于另一个窗口中,则可看到脚本执行时跳动的“活性线条”。

在上例的关卡中有两个火焰效果蓝图,各自拥有不同的停止时间。在 Event Begin Play 节点上(游戏启动后),Delay 节点用于在变量指定的时间结束后 停止 火焰和相关音效。

游戏启动后(当跳动线条离开 Event Begin Play 节点,进入 Delay 节点时)可在左边窗口中看到脚本的执行。在指定时间后,跳动线条进入第三个节点,而该节点用于停止其中一个火焰效果。

断点

在任意执行节点上 单击右键 选择 Add Breakpoint,可添加一个 断点 至蓝图脚本。

DebugHowTo3.png

单击右键 的方法外,还可在选定的节点上按 F9 键切换断点的开关。

断点被添加至节点后,节点的左上角将出现一个红圈。

DebugHowTo4.png

游戏进程中脚本到达此点时,游戏将暂停并聚焦于此节点。

DebugHowTo7.png

也可临时禁用断点,记录之前哪些节点指派了断点。

DebugHowTo6.png

断点被禁用后,到达节点时将忽略断开指令。

Debug 菜单中的选项可用于 禁用/启用删除全部断点

DebugHowTo18.png

调试控制

当蓝图到达断点时,可选额外控制选项,便于进行蓝图脚本导航。

DebugHowTo9.png

顶部从左至右,Resume 用于在编辑器中继续游戏和退出调试模式。Frame Skip 用于以单帧前进游戏进程;Stop 用于编辑器会话中完全停止游戏。Find Node 选项用于从游戏会话跳至当前活动的节点;Step 用于在当前执行流中前进至下个节点。

在节点上放置一个断点后开始脚本进程,然后到达当前执行流的终点时,将自动返回游戏。

调试的常规工作流是为节点添加一个断点,然后使用 Step 在脚本中前进,找到问题源头。放置断点需要注意的是在脚本中无法后退,需将其放置在问题发生之前,才能完整地看到问题的前后全貌。

观察数值

在变量上 单击右键 并选择 Watch this value 选项即可观察变量值。

DebugHowTo11.png

选择观察变量后,变量访问之处将出现放大镜图标。

DebugHowTo12.png

变量上方的浮动文本框显示变量的当前数值。在编辑器中进行游戏时,如变量发生变化,它也将反映在文本框中,以便查看其变化和当前数值。观察变量的选项不限于数值式变量,任意变量均可被观察,以便了解数值(下图中的 Boolean 正被观察,我们可以了解其当前状态)。

DebugHowTo10.png

可通过 Debug 菜单中的 Delete All Watches 选项从所有变量上移除观察符号。

DebugHowTo18.png

蓝图调试器标签

也可通过 Blueprint Debugger 对蓝图进行调试,该选项位于 Window / Developer Tools 部分。

DebugHowTo13.png

不在编辑器中进行游戏时,Blueprint Debugger 显示所有被观察的变量或指派的断点(下图黄色框中的内容)。

DebugHowTo14.png

按住 Shift 键点击关卡中的 Actors 可将多个蓝图添加至 Blueprint Debugger 标签。

在编辑器中进行(或模拟)游戏时,调试器的下部将被填入内容。这部分为 执行追踪(Execution Trace)

DebugHowTo15.png

它是所有被执行指令的日志记录,以生成时间排序(上方为最近生成)。

到达断点时,可在蓝图调试器标签中直接访问本页中提及的 调试控制

编译错误

编译蓝图时出现 编译错误 (下图黄色框所示)存在多种原因。

DebugHowTo19.png

出现这种情况后,进行游戏时将出现类似于下图的提示信息。

DebugHowTo23.png

存在错误的蓝图将同样被反映在关卡编辑器视口中。

DebugHowTo24.png

在这种情况下,可能无法通过调试方法成功确定错误。在编译报错的蓝图中,引起错误的节点将被标记,以便确定问题所在之处。

DebugHowTo20.png

可在 Compiler Results 窗口中查看关于报错的更多信息。

DebugHowTo21.png

出现错误时 Compiler Results 窗口将自动弹出。可点击放大镜跳至错误所在位置和问题节点。为帮助解决问题,将显示错误的文本描述。