Version: 6000.3
语言: 中文
调试和诊断
调试故障排除

在 Unity 中调试 C# 代码

可以在应用程序运行时使用调试器检查源代码。每个受支持的 IDE 都有您必须安装的依赖项,以使 IDE 能够与 Unity 正确集成。有关配置每个受支持的 IDE 以在 Unity 中进行调试所需的详细信息,请参阅集成开发环境 (IDE) 支持

尽管这些 IDE 支持的调试功能略有不同,但它们都提供了基本功能,例如断点、单步执行和变量检查。您可以将 IDE 附加到 Unity 编辑器或 Unity Player 以调试代码。

Unity 中的托管代码调试适用于除 Web 之外的所有平台。它适用于单声道Unity 中使用的脚本后端。更多信息
请参阅术语表
IL2CPP Unity 开发的脚本后端,在为某些平台构建项目时,可以将其用作 Mono 的替代方案。更多信息
请参阅术语表
脚本后端为Unity中的脚本提供支持的框架。Unity 支持三种不同的脚本后端,具体取决于目标平台:Mono、.NET 和 IL2CPP。但是,通用 Windows 平台仅支持两个:.NET 和 IL2CPP。更多信息
请参阅术语表
.

在 Unity 编辑器中调试

要调试编辑模式或运行模式代码在编辑器中运行时,请执行以下作:

  1. 配置 IDE 以进行 Unity 开发和调试。
  2. 编辑器的代码优化模式设置为 调试(Debug)。
  3. 您的 IDE 附加到 Unity 编辑器进程。

提示: 在批处理模式下运行编辑器时,可以使用命令行参数 -wait-for-managed-debugger使编辑器在启动之前等待托管调试器附加。

在 Unity 播放器中调试

要在 Unity Player 中运行时调试播放模式代码,请执行以下作:

  1. 配置 IDE 以进行 Unity 开发和调试。
  2. 构建项目编译为可在特定平台或平台上运行的格式的过程。更多信息
    请参阅术语表
    您的项目使用开发版本开发版本包括调试符号并启用性能分析器。更多信息
    请参阅术语表
    和 脚本调试(Script Debugging) 选项已启用。(可选)启用“等待托管调试器”选项,使播放器在启动和运行任何脚本代码之前等待调试器附加。
  3. IDE 附加到 Unity Player 进程。

注意:在批处理模式下运行 Player 时,可以使用命令行参数 -wait-for-managed-debugger使播放器在启动之前等待托管调试器附加。

设置 Unity 编辑器的代码优化模式

编辑器的代码优化设置有两种模式:

  • 调试:允许附加到外部调试器,但代码在播放模式下运行速度较慢。
  • 发布:代码在播放模式下运行速度更快,但无法附加到外部调试器。

将调试器附加到编辑器,你首先需要将编辑器的代码优化模式设置为 调试模式(debug mode) 。您可以通过以下方式更改代码优化设置:

  • 在编辑器状态栏中:单击状态栏右下角的代码优化模式按钮(bug 图标)。将打开一个小的弹出窗口,其中包含一个可用于切换模式的按钮。
  • “首选项”窗口中:要更改 Unity 编辑器的启动模式,请转到“编辑>首选项”(macOS:Unity > 设置)>“常规”,然后更改“启动时代码优化”设置。
  • 从代码:可以使用 ManagedDebuggerCompilation.CompilationPipeline-codeOptimizationCompilation.CodeOptimization API 更改代码优化模式。
  • 从命令行:使用 command-line 参数-releaseCodeOptimization以发布模式启动编辑器,以及-debugCodeOptimization以调试模式启动它。有关详细信息,请参阅调试参数

设置断点

断点允许您在代码中指定要暂停其执行的点。在 IDE 中,可以在希望调试器停止的代码行上设置断点。当 IDE 处于断点时,您可以逐步查看变量的内容。

如果将 IDE 附加到 Unity 编辑器,则编辑器会在断点处无响应,直到您在 IDE 中选择继续选项或停止调试。

有关如何设置断点的更多信息,请参阅 IDE 的相关文档:

将 IDE 附加到 Unity 编辑器或播放器进程

将 IDE 附加到 Unity 编辑器或播放器进程的方式特定于您使用的 IDE。某些 IDE 具有特定于 Unity 的附加选项,该选项与附加到其他应用程序的标准过程不同。

有关如何附加到 Unity 进行调试的信息,请参阅 IDE 的相关文档:

附加到 Unity 编辑器后,返回 Unity 编辑器并进入播放模式以开始调试。

要附加到构建的播放器,请从 IDE 中选择播放器的 IP 地址(或计算机名称)和端口。附加调试器后,可以正常开始调试。

注意:您的 IDE 显示所有可供调试的 Unity 实例。如果编辑器进程和播放器进程正在运行,请确保区分它们。

人造人

要调试在 Android 设备上运行的 Unity Player,请使用 USB 或 TCP 连接到设备。例如,若要在 Visual Studio 中连接到 Android 设备,请选择“调试”>“附加 Unity 调试器”选项。此时将显示运行 Player 实例的设备列表。

有关更多信息,请参阅在 Android 设备上调试

iOS系统

要调试在 iOS 设备上运行的 Unity Player,请使用 TCP 连接到设备。

确保设备只有一个活动网络接口(建议使用 Wi-Fi,关闭手机网络数据),并且 IDE 和设备之间没有阻止 TCP 端口(上面屏幕截图中的端口号 56000)的防火墙。

重要提示:iOS 不支持通过 USB 进行调试。

有关更多信息,请参阅测试和调试 iOS 应用程序

其他资源

调试和诊断
调试故障排除