Version: Unity 6.0 (6000.0)
语言 : 中文
Web 性能注意事项
构建和分发 Web 应用程序

Web 构建的调试和故障排除

Visual Studio 不支持调试 Unity Web 内容。使用以下提示获取构建信息。

在浏览器的 JavaScript 控制台中调试构建

Unity Web 平台无权访问您的文件系统,因此不会像其他平台那样写入日志文件。但是,它会将所有日志记录信息(例如 Debug.LogConsole.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
  1. 转到 Preferences > Advanced > Develop
  2. 按 Command-Option-C。

创建要调试的开发构建

您可能希望在 Unity 中制作开发构建以调试代码。要制作开发构建,请执行以下操作:

  1. 打开构建配置文件 (Build profiles) 窗口。

  2. 启用开发构建 (Development Build)

开发构建允许您连接性能分析器。Unity 不会缩减代码,因此发出的 JavaScript 代码仍然包含人工可读且经过 C++ 名称修饰的函数名称。

如果您遇到浏览器错误,使用 Debug.LogError 时,或者发生异常并且禁用了异常支持时,浏览器将使用它们来显示堆栈跟踪。与具有完全异常支持时将发生的托管堆栈跟踪不同,这些堆栈跟踪具有重整的名称,包含托管代码,而且包含内部 Unity 引擎代码。

异常支持

Web 具有不同级别的异常支持,但默认情况下,Unity Web 仅支持显式抛出异常。有关更多信息,请参阅 Web 播放器设置。您可以启用完全的异常支持,这种情况下支持在__ IL2CPP__种由 Unity 开发的脚本后端,可在为某些平台构建项目时替代 Mono。更多信息
See in Glossary
生成的代码中发起额外的检查,从而检测是否访问了托管代码中的 null 引用和越界数组元素。这些额外的检查会显著影响性能并增加代码大小和加载时间,因此必须只将其用于调试。

完整的异常支持还会发出函数名称,以便为托管代码生成堆栈跟踪信息。出于这一原因,对于未捕获的异常和 Debug.Log 语句,堆栈跟踪将出现在控制台中。使用 System.Environment.StackTrace 获取堆栈跟踪字符串。

故障排除

问题:构建耗尽内存

这是一个常见问题,尤其是在 32 位浏览器上。如需了解 Web 内存问题以及如何修复这些问题的更多信息,请参阅有关 Unity Web 中的内存文档。

错误消息:错误的头部检查 (Incorrect header check)

由于服务器配置不正确,浏览器控制台日志通常会打印出此错误信息。如需详细了解如何部署发布构建,请参阅有关部署压缩构建的文档。

错误消息:不支持在此平台上解压缩此格式 (1) (Decompressing this format (1) is not supported on this platform)

当内容尝试加载使用 LZMA 压缩的 AssetBundle 而 Unity Web 不支持时,浏览器控制台日志会输出此错误。使用 LZ4 压缩方式重新压缩 AssetBundle 可以解决此问题。有关 Web 压缩的更多信息,请参阅有关 Web 构建的文档,特别是 AssetBundles 部分。

其他资源:

Web 性能注意事项
构建和分发 Web 应用程序