---
title: 技术限制
product: Unity Editor
version: '6000.0'
latest_version: '7000.0'
status: This page documents version 6000.0. The latest version is 7000.0.
canonical: https://docs.unity.com/zh-cn/engine/6000.0/manual/platform-specific/webgl/intro/technical-overview
latest_url: https://docs.unity.com/zh-cn/engine/7000.0/manual/platform-specific/webgl/intro/technical-overview.md
last_updated: 2026-10-30
generated_at: 2026-11-08T15:28:01.937Z
locale: zh-cn
---

# 技术限制

> Details the technical limitations of the Web platform.

Web 技术对设计为在 Web 浏览器中运行的 Unity Web 应用程序施加限制。在为 Web 平台构建应用程序之前，请确保了解以下技术限制。

## 平台支持##platform-support

大多数流行的桌面端浏览器版本都支持 Unity Web 内容，但请注意，不同的浏览器提供[不同程度的支持](/engine/6000.0/manual/platform-specific/webgl/intro/browsercompatibility.md)。

由于平台本身的限制，Web 构建中的以下功能不可用或受到限制：

### Visual Studio 中缺少 Web 构建调试支持##lack-of-web-build-debug-support-in-visual-studio

Visual Studio 不支持调试 Web 构建。有关更多信息，请参阅[Web 构建的调试和故障排除](/engine/6000.0/manual/platform-specific/webgl/develop/debugging.md)。

### 缺少 Unity 缓存和缓存脚本支持##lack-of-unity-cache-and-caching-script-support

由于浏览器中对文件系统的访问受限，Web 构建不支持 Unity 缓存和缓存脚本 API。对资产数据和 AssetBundle 的网络请求将改为缓存在浏览器缓存中。请参阅 [Web 中的缓存行为](/engine/6000.0/manual/platform-specific/webgl/develop/caching.md)。

### 缺少线程支持##lack-of-input-system-keyboard-layout-mapping

由于 JavaScript 中缺少线程支持，因此不支持线程。在 Unity 内部使用线程来加速性能以及在脚本代码和托管的 dll 中使用线程都是不受支持的。实质上不支持 `System.Threading` 命名空间中的任何内容。

### 联网限制##lack-of-managed-threading-support

有一些联网功能是 Web 平台不支持的：

* 出于安全考虑，浏览器不允许直接访问 IP 套接字来进行联网。有关更多信息，请参阅 [Web 联网](/engine/6000.0/manual/platform-specific/webgl/develop/networking.md)。

* 不支持 `System.Net` 命名空间中的 .NET 联网类。

* 由于浏览器内的安全限制，Web 平台不支持原生套接字访问。因此，Web 也不支持 ICMP ping 或 [UnityEngine.Ping](/engine/6000.0/script-reference/unity-engine/ping.md) 等功能。

### 图形限制##networking-limitations

WebGL 图形 API 基于 OpenGL ES 图形库的功能，因此 Web 平台存在一些限制。有关更多信息，请参阅 [Web 图形](/engine/6000.0/manual/platform-specific/webgl/develop/graphics.md)。

### 音频限制##graphics-limitations

Web 构建使用基于 **Web 音频** API 的自定义音频后端，但仅支持基本的音频功能。有关更多信息，请参阅 [Web 中的音频](/engine/6000.0/manual/platform-specific/webgl/develop/audio.md)。

### 动态生成代码##audio-limitations

Web 是一个 AOT 平台，因此不允许使用 `System.Reflection.Emit` 来动态生成代码。在所有其他 IL2CPP 平台、iOS 和大多数游戏主机上都是如此。

## 多线程支持##multithreading-supportscrollpoint-id=multithreading-support-/

虽然 Unity 为原生 C/C++ 代码提供多线程支持，但由于 WebAssembly 的限制，Web 平台尚不支持 C# 多线程。这意味着使用 Web 平台构建的应用程序必须在单个 C# 线程上运行。

**注意**：

* 仅当在 Web 播放器设置中启用[原生 C/C++ 支持](/engine/6000.0/manual/platform-specific/webgl/develop/class-player-settings-web-gl.md#multithreading)时，Web 平台才支持 C/C++ 多线程。

* 当您的文档位于安全上下文中时，Web 平台支持多线程。

  以下 HTTP 响应标头必须由服务器设置。

  * [Cross-Origin-Opener-Policy: same-origin](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cross-Origin-Opener-Policy)
  * [Cross-Origin-Embedder-Policy: require-corp](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cross-Origin-Embedder-Policy)
  * [Cross-Origin-Resource-Policy: cross-origin](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cross-Origin-Resource-Policy)

在 Web 平台上执行复杂异步任务时，推荐使用协同程序。有关更多信息，请参阅[协同程序](/engine/6000.0/manual/scripting/object-oriented-development/coroutines.md)文档。

以下因素限制了多线程支持：

### 本机堆栈扫描的约束##physics-limitations

Web 平台使用 WebAssembly，这是一种字节码格式，用于在 Web 浏览器中安全高效地执行 Unity 代码。Web 浏览器被设计为在安全和隔离的环境中运行代码，从而阻止对 WebAssembly 本地堆栈的直接访问。这会影响多线程垃圾收集，因为 Web 垃圾回收器仅在每帧末尾运行一次，不像其他平台那样在多个帧上逐步递增。

### 不支持抢占式线程信令##dynamic-generation-of-code

Web 上的后台工作线程彼此独立并行执行代码。在原生平台上，主线程可以同步向其他线程发送信号以暂停垃圾收集。Web 不支持此同步信令，因此会阻止 WebAssembly 编译的 C# 代码在多线程中运行。

## 构建和运行限制##build-and-run-limitations

Unity 使用仅具有基本功能的 Web 服务器来托管使用**构建并运行 (Build and Run)** 创建的 Web 构建（菜单：**编辑 (Edit)** > **构建配置文件 (Build Profiles)** > **构建并运行 (Build and Run)**）。

服务器不支持数据缓存，这会影响：

* `.data` 文件，其中包含不使用 [AssetBundle](/engine/6000.0/manual/working-in-unity/assets-and-media/asset-workflow/asset-bundles-intro.md) 或 [Addressables](https://docs.unity3d.com/Packages/com.unity.addressables@latest?subfolder=/manual/index.html) 的构建的所有场景和资产。
* Addressables 和 AssetBundle 文件。

## 其他资源##additional-resources

* [安全上下文](https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts)
* [垃圾收集](https://docs.unity3d.com/2023.3/Documentation/Manual/webgl-memory.html#garbagecollection)
