Godot 游戏引擎指南/调试
调试器坞是默认的也是最好的调试方式。如果它旁边显示一个红色圆圈,则表示有错误需要阅读。如果有黄色圆圈,则表示有新的警告需要阅读。
当你打开它时,你会看到几个选项卡
当脚本错误发生时,这个选项卡会打开。对于致命错误,它不会显示,游戏只会崩溃。在这种情况下,请参见 下方。
它显示了“堆栈帧”。这是一个堆栈 函数调用,让你能够找到错误的来源。这非常宝贵。在堆栈帧的右侧,显示了脚本可以访问的所有变量以及它们的值。在它的上方是几个按钮
- 跳过断点:在按下此按钮之前,游戏会暂停在断点处。.
- 复制错误:将错误复制到你的剪贴板。
- 单步进入:运行下一个表达式。进入它本来会进入的缩进块。
- 单步执行:运行下一个表达式。跳过缩进块。
- 中断:暂停游戏,就像使用断点一样。
- 继续:恢复游戏。
允许你查看在运行游戏期间遇到的所有致命和非致命错误以及警告。有几个按钮
- 清除:清空此列表。
- 展开全部:展开每个错误以查看更多信息。
- 折叠全部:折叠每个错误以查看更少的信息。
可以按每个错误跳转到产生该错误的脚本和行。双击它可以展开或折叠。你也可以点击箭头来展开/折叠。展开它会显示错误和代码堆栈。
这允许你记录函数调用次数以及使用了多少帧时间。在优化游戏时它非常宝贵,并且也可以用于调试。
首先,你必须按下开始。在右侧,会生成一个图表。较高的线条意味着某些东西占用了大量的游戏处理时间。它们应该在某些时候尽可能地进行优化。
要检查是什么导致了游戏运行缓慢,请点击图表中峰值较高的地方,然后向下滚动左侧。你会看到每个函数调用花费了多少秒以及它被调用了多少次。如果你想要百分比,请点击Mesure:
值,然后选择Frame %
。
Time:
有两个值
- 包含:显示帧时间或对某个函数的所有调用的百分比
- 自身:显示单个调用期间最大的帧时间或百分比。
这允许你查看每个节点使用了多少互联网流量。包括发送和接收的流量。
这允许你通过图表检查性能。最有用的显示选项是
- 时间
- FPS:每秒帧数。
- 进程:每个空闲帧花费的时间。
- 物理进程:物理帧花费的时间。
- 内存
- 静态:用于不变事物的内存量。
- 动态:正在使用的内存量始终在变化,或者代码正在运行。
- 静态最大值:已达到的最大静态内存。
- 动态最大值:已达到的最大动态内存。
- 消息缓冲区最大值:输出使用的内存,包括错误和警告。
- 对象
这允许你查看有多少图像占用了内存以及哪些图像占用了内存。
这允许你查看游戏关闭之前最后激活的控制节点及其节点路径。
打开脚本编辑器后,按下顶部的“调试”按钮。它靠近“文件”和“搜索”。
你有一些上面已经解释过的选项:单步进入、单步执行、中断和继续。
你还有两个其他选项
- 保持调试器打开:运行游戏会减慢编辑器的速度,因此必须关闭它。但关闭游戏也会关闭调试器。选中此选项以在关闭游戏时保持调试器打开。
- 使用外部编辑器调试:允许你使用另一个编辑器进行调试。
在屏幕的最顶部,按下“调试”按钮。它出现在“场景”和“项目”附近。你有以下选项
- 使用远程调试部署:导出时,生成的执行文件将尝试连接到要调试的计算机。
- 使用网络文件系统进行小型部署:导出会生成一个最小的执行文件。文件系统通过互联网提供。
- 可见碰撞形状:是否显示碰撞形状。
- 可见导航:在运行的游戏中是否可见导航网格和多边形。
- 同步场景更改:如果选中,对场景的更改将复制到运行的游戏中。
- 同步脚本更改:如果选中,对脚本的更改将导致它在运行的游戏中重新加载。
调试编辑器插件的最佳方法是关注输出面板。 如果这没有帮助,添加临时的print()
调用可以帮助您查看调用了什么以及变量的值。
致命错误是不会抛出错误消息的崩溃。 它通常是由引擎错误引起的,有时与您的代码无关。 您也可以尝试另一种方式来完成代码崩溃时正在执行的操作,或者在此处报告错误。 您可能需要发送发生崩溃时正在运行的代码的副本。
确切地记下发生崩溃时您在做什么。 尝试找出正在运行的代码,并在该区域周围添加断点。 如果这次没有崩溃,请再次删除断点。 如果在播放时它仍然没有崩溃,请确保您正在执行您写下的操作。
如果您仍然无法重现崩溃,请假设这不是您可以修复的问题,而是一个编辑器错误。 考虑发送错误报告。 这可能需要提供您认为问题所在的代码示例,并且您可能需要提供您正在执行的操作的准确说明。 也要考虑上传任何有用的日志文件。