通常情况下,Web 性能接近 GPU 上的原生应用,因为WebGL一个渲染 Web 浏览器中 2D 和 3D 图形的 JavaScript API。Unity 的 Web 构建选项允许 Unity 将内容发布为 JavaScript 程序,这些程序使用 HTML5 技术和 WebGL 渲染 API 在 Web 浏览器中运行 Unity 内容。 更多信息
参见 术语表图形 API 使用您的 GPU 进行硬件加速渲染。唯一的例外是将 WebGL API 调用和着色器在 GPU 上运行的程序。 更多信息
参见 术语表转换为您的操作系统图形 API(通常 Windows 上为 DirectX,Mac 和 Linux 上为 OpenGL)时产生的少量开销。
在 CPU 上,Emscripten 将您的代码转换为 WebAssembly,其性能取决于您使用的 Web 浏览器。
请注意以下事项
提示:要了解 Unity 如何将工作分配到非 Web 平台上的不同线程,请参阅 Unity 中新的时间轴探查器一个帮助您优化游戏的窗口。它显示在游戏的各个区域花费了多少时间。例如,它可以报告渲染、动画或游戏逻辑中花费的时间百分比。 更多信息
参见 术语表。
为了提高性能,请在 Web 的播放器设置中将异常支持设置为无,方法是展开其他设置 > 堆栈跟踪。
您可以在 Web 平台上使用探查器,但您无法通过编辑器附加到使用 Web 构建的正在运行的播放器。这是因为 WebGL API 使用 WebSockets 进行通信,而 WebSockets 不允许在浏览器端进行传入连接。
要附加到正在运行的播放器,您需要启用自动连接探查器设置
注意:Unity 无法为 Web 应用程序分析绘制调用。
有关更多信息,请参阅将探查器连接到数据源。
如果启用了以下选项之一,则当画布或浏览器窗口失去焦点时,您的内容将继续运行
但是,某些浏览器可能会限制在后台选项卡中运行的内容。如果包含您内容的选项卡不可见,则大多数浏览器中您的内容每秒仅更新一次。请注意,这会导致Time.time以比平时慢的速度进行,因为Time.maximumDeltaTime的默认值小于一秒。
在某些情况下,您可能希望以较低的帧速率运行 Web 内容以减少 CPU 使用率。例如,在其他平台上,您可以使用Application.targetFrameRate API 来实现此目的。
当您不想限制性能时,请将此 API 设置为默认值 -1。这允许浏览器为浏览器渲染循环中的最流畅动画调整帧速率,并且可能比 Unity 尝试执行自己的主循环计时以匹配目标帧速率产生更好的结果。
注意:出于安全原因,Unity 无法查询浏览器的帧速率。因此,Unity 假设所有浏览器的显示速率为 60 fps参见第一人称射击游戏,每秒帧数。
参见 术语表,并基于该值设置Application.targetFrameRate
。