使用以下建议的播放器设置来优化你的构建,以适用于 Unity 网络平台。
在编辑 > 项目设置 > 播放器下找到这些设置。有关每项设置的更多信息,请参阅 播放器设置使你能够为 Unity 构建的最终游戏设置各种特定于播放器的选项的设置。更多信息
在 词汇表中查看 中的详细信息。
设置 | 建议设置 | 描述 |
---|---|---|
API 兼容级别 | .NET Standard 2.1 | 生成较小的构建。 |
IL2CPP 代码生成 | 更快(更小)的构建 | 生成针对构建大小和迭代进行了优化的代码。 |
托管精简级别 | 高 | Unity 进行高度托管精简以创建较小的构建。 |
在发布设置部分配置以下建议设置
设置 | 建议设置 | 描述 |
---|---|---|
压缩格式 | Brotli | Brotli 压缩的文件较小。 |
数据缓存 | 已启用 | 运行速度更快,因为在后续运行中不需要再次下载已缓存数据(除非内容已更改)。 |
调试符号 | 关闭 | 调试符号可能会减慢应用程序速度。 |
启用异常 | 无 | 相反,针对异常启用目标 WebAssembly 2023,而无需开销。 |
目标 WebAssembly 2023 | 启用 | Web Assembly 2023 功能集功能集是一组相关程序包,你可以使用它们在 Unity 编辑器中实现特定的结果。你可以在 Unity 的包管理器中直接管理功能集。更多信息 在 词汇表中查看 包含帮助优化你的项目的功能。 |
最大内存大小(MB) | 输入以 MB 为单位所需的内存量。 | Unity Web 支持在你的构建中使用高达 4096 MB 的内存。 |
使用API 兼容级别设置可选择可以在项目中使用的 .NET API。推荐的设置是.Net Standard 2.1,因为此设置会生成较小的内部版本且具有跨平台支持。但是,您需要检查平台是否完全支持 .Net Standard 2.1。关于其他选项,请参阅网络播放器设置。
相反,若要通过脚本更改API 兼容级别,请将此代码添加到您的某个脚本一段代码,允许您创建您自己的组件,触发游戏事件,随着时间的推移修改组件属性并且以任何您喜欢的方式响应用户输入。 更多信息
在词汇表中查看
PlayerSettings.SetApiCompatibilityLevel(namedBuildTarget, ApiCompatibilityLevel.NET_2_0);
使用IL2CPPUnity 开发的脚本后端,在为某些平台构建项目时,您可以将它用作 Mono 的替代。 更多信息
在词汇表中查看 代码生成设置配置 Unity 管理 IL2CPP 代码生成的方式(如果您的项目使用 IL2CPP 脚本后端)。
推荐使用更快(更小)内部版本选项,因为它创建较小的内部版本且生成较少的代码,从而导致更快的构建时间。更快的内部版本时间在网络应用程序中至关重要。但是,此设置可以降低运行时性能。
有关更多信息,请参阅IL2CPP 概述。
相反,若要通过脚本启用此设置,请将此代码添加到您的某个脚本
PlayerSettings.SetIl2CppCodeGeneration(namedBuildTarget,
Il2CppCodeGeneration.OptimizeSize);
使用托管精简级别来配置 Unity 链接器进程从项目使用的托管 DLL 中剥离未使用的代码的程度。推荐的设置是高,因为精简代码可以使您的可执行文件小很多,这在网络应用程序中很重要。然而,可能的副作用可能包括
一些方法的托管代码调试可能不起作用。
您可能需要维护一个自定义link.xml
文件。
一些反射代码路径可能无法产生相同的作用。
有关更多信息,请参阅托管代码精简。
相反,若要通过脚本更改此设置,请将此代码添加到您的某个脚本
PlayerSettings.SetManagedStrippingLevel(namedBuildTarget,
ManagedStrippingLevel.High);
选择将压缩一种存储数据的方法,可减少其所需存储空间。请参阅纹理压缩、动画压缩、音频压缩、构建压缩。
请参阅术语表格式用于发布构建文件。Brotli 是推荐设置,因为它有最好的压缩率,且 Brotli 压缩文件比 gzip 小。较小的文件最适合 Web 应用程序。然而,只有当用户通过 HTTPS 访问网站时,Chrome 和 Firefox 才支持 Brotli。此外,尽管大多数现代服务器都支持 Brotli,但某些服务器不支持它。请确保你的服务器支持 Brotli。
有关压缩格式的详细信息,请参阅部署 Web 应用程序。
相反,若要通过脚本启用此设置,请将此代码添加到您的某个脚本
PlayerSettings.WebGL.compressionFormat = WebGLCompressionFormat.Brotli;
启用数据缓存,以便 Unity 将你的内容资产数据缓存在用户机器上。数据缓存可以更快地运行应用程序。有关详细信息,请参阅Web 中的缓存行为。
相反,若要通过脚本启用此设置,请将此代码添加到您的某个脚本
PlayerSettings.WebGL.dataCaching = true;
调试符号设置会保留调试符号,并在发生错误时显示堆栈跟踪的原始函数名称,因此可以轻松识别错误的源头。建议最佳做法是在最终发布版本中禁用调试符号,因为它会无故扩大版本大小并减慢应用程序。开发和测试期间启用此设置可以更轻松地识别错误源。
相反,要通过脚本停用此设置,请将此代码添加到你的某个脚本中
PlayerSettings.WebGL.debugSymbolMode = WebGLDebugSymbolMode.Off;
启用异常设置让你可以选择在运行时如何处理错误。建议最佳做法是在最终发布版本中选择无选项,因为此设置可提供最佳性能和最小的版本。
但是,通过此选项,任何抛出的异常都会导致你的内容因错误而停止,因此最好在开发和测试期间启用异常。有关详细信息,请参阅Web 播放器设置。
相反,要通过脚本停用异常,请将此代码添加到你的某个脚本中
PlayerSettings.WebGL.exceptionSupport = WebGLExceptionSupport.None;
WebAssembly 2023 是可以选择的一系列 WebAssembly 语言特性,这些特性可以提高性能并减少代码大小。因此,我们建议你启用此设置。
相反,若要通过脚本启用此设置,请将此代码添加到您的某个脚本
PlayerSettings.WebGL.wasm2023 = true;
// PlayerSettings.WebGL.webAssemblyTable = true;
// PlayerSettings.WebGL.webAssemblyBigInt = true;
要在没有 WebAssembly 2023 的情况下启用WebAssembly.Table
或 BigInt
特性,请删除第一行代码并删除注释行。
Unity 为您的构建提供高达 4096 MB 的内存支持。对于大多数应用程序,2048 MB 内存就足够了。但是对于更复杂的实时 3D 体验,尤其是桌面浏览器,最好拥有更多内存。借助更多内存,您可以在动态中加载更多丰富的内容,以及更大的 场景场景包含游戏环境和菜单。可以将每个独特的场景文件视为一个独特的关卡。每个场景中,您将放置环境、障碍物和装饰品,实质上是分批设计和构建游戏。更多信息
参见 术语表。
但是,在版本 119 之前的 Firefox 和 Chrome 浏览器中,对于超过 2048 MB 大小的构建存在一些已知错误。
要通过脚本来更改最大内存,可将以下代码添加到您的脚本中并将其数字更改为您的首选内存大小
PlayerSettings.WebGL.maximumMemorySize = 4096;