Visual Studio 不支持调试 Unity Web 内容。请使用以下提示获取构建信息。
Unity Web 平台无法访问您的文件系统,因此不会像其他平台那样写入日志文件。但是,它会将所有日志信息(例如 Debug.Log
、Console.WriteLine
或 Unity 的内部日志)写入浏览器的 JavaScript 控制台。
要打开 JavaScript 控制台
操作系统 | 浏览器 | 操作说明 |
---|---|---|
Windows | Firefox | 按 Ctrl-Shift-K。 |
Chrome | 按 Ctrl-Shift-J。 | |
Microsoft Edge | 按 F12。 | |
Internet Explorer | 按 F12。 | |
Mac | Firefox | 按 Command-Option-K。 |
Chrome | 按 Command-Option-J。 | |
Safari |
|
您可能希望在 Unity 中创建一个 开发构建开发构建包含调试符号并启用 Profiler。 更多信息
参见 术语表 以调试您的代码。要创建开发构建
打开 构建配置文件窗口。
启用 开发构建。
开发构建允许您连接 分析器一个帮助您优化游戏的窗口。它显示在游戏的各个区域花费了多少时间。例如,它可以报告渲染、动画或游戏逻辑中花费的时间百分比。 更多信息
参见 术语表。Unity 不会 压缩 代码,因此发出的 JavaScript 代码仍然包含人类可读的、C++ 转换 的函数名。
浏览器使用这些函数名来显示堆栈跟踪,如果您遇到浏览器错误、使用 Debug.LogError
或发生异常并且异常支持被禁用时。与启用完整异常支持时发生的托管堆栈跟踪不同,这些堆栈跟踪具有转换后的名称,并且包含托管代码和内部 Unity 引擎代码。
Web 具有不同级别的异常支持,但默认情况下,Unity Web 仅支持显式抛出的异常。有关更多信息,请参阅 Web Player 设置。您可以启用 完整 异常支持,这会在 IL2CPP 生成的代码中发出其他检查,以捕获对空引用的访问和托管代码中超出范围的数组元素。这些额外的检查会显着影响性能并增加代码大小和加载时间,因此您必须仅将其用于调试。
完整异常支持还会发出函数名称以生成托管代码的堆栈跟踪。因此,未捕获异常和 Debug.Log
语句的堆栈跟踪会显示在控制台中。使用 System.Environment.StackTrace
获取堆栈跟踪字符串。
这是一个常见问题,尤其是在 32 位浏览器上。有关 Web 内存问题以及如何修复这些问题的更多信息,请参阅有关 Unity Web 中的内存 的文档。
浏览器控制台日志通常由于服务器配置不正确而打印此错误。有关如何部署发布构建的更多信息,请参阅有关 部署压缩构建 的文档。
当内容尝试加载使用 Unity Web 不支持的 LZMA 压缩的 AssetBundle 时,浏览器控制台日志会打印此错误。使用 LZ4 压缩一种存储数据的方法,可减少其所需的存储空间。请参阅 纹理压缩、动画压缩、音频压缩、构建压缩。
参见 术语表 重新压缩 AssetBundle 以解决此问题。有关 Web 压缩的更多信息,请参阅有关 Web 构建 的文档,尤其是 AssetBundles 部分。