Unity Console 消息和日志文件可以包含详细的堆栈跟踪信息。控制台还会链接到生成消息的代码行。当您想要识别导致日志条目出现的行、方法或函数调用序列,这非常有用。
提示:检查代码的另一种方法是将调试器附加到编辑器或构建的播放器。
Unity 可提供托管和非托管代码的堆栈跟踪信息:
托管代码:在 Unity 中运行的托管 DLL 或 C# 脚本。其中包括 Unity 附带的脚本、您编写的自定义脚本、Asset Store 插件附带的第三方脚本或者引擎中运行的任何其他 C# 脚本。
非托管代码:原生 Unity 引擎代码,或直接在计算机上或目标构建平台上运行的原生插件中的代码。非托管代码通常是从 C 或 C++ 代码编译的。仅当拥有原生二进制文件的原始源代码时才能访问它。通常,仅当需要确定错误源自于您的代码还是引擎代码(以及源自于引擎代码中某个具体的部分)时,才会对非托管代码使用堆栈跟踪。
Unity 提供了三个堆栈跟踪选项:
解析堆栈跟踪(特别是整个堆栈跟踪)是一种资源密集型操作。堆栈跟踪的一些最佳做法包括:
注意:堆栈跟踪选项是一种构建设置,会影响到构建的播放器。它不是编辑器中的视图偏好设置。
要指定堆栈跟踪中所包含的细节量,可以使用脚本 API 或编辑器:
要通过脚本 API 控制堆栈跟踪日志记录,请使用 Application.SetStackTraceLogType。可以使用 API 在播放器构建之前或运行时更改播放器的堆栈跟踪设置。
要使用播放器设置 (Player Settings) 窗口,请选择编辑 (Edit) > 项目设置 (Project Settings) > 播放器 (Player) > 其他设置 (Other Settings)。使用新设置重新构建播放器。
消息的全文包含对代码文件中特定行的引用以及链接。单击任意链接即可在 IDE 中打开文件并转到引用的行。
构建的应用程序不会输出到控制台。要查看堆栈跟踪,请使用应用程序的日志文件。