Version: 6000.3
语言: 中文
Play 资产交付
设置 Play Asset Delivery

Unity 中的资产包

本页介绍了资源包在使用 Play Asset Delivery 的 Unity Android 应用程序上下文中的工作原理。

您可以将 Unity 配置为生成 Android App Bundle (AAB),其中包括拆分为基本模块和资产包的应用程序:

  • 基本模块:包含可执行文件(Java 和本机),插件在 Unity 外部创建的一组代码,用于在 Unity 中创建功能。可以在 Unity 中使用两种插件:托管插件(使用 Visual Studio 等工具创建的托管 .NET 程序集)和本机插件(特定于平台的本机代码库)。更多信息
    请参阅术语表
    ,以及第一个中的资产场景场景包含游戏的环境和菜单。将每个唯一的场景文件视为一个独特的关卡。在每个场景中,你放置你的环境、障碍物和装饰品,基本上是将你的游戏设计和构建成碎片。更多信息
    请参阅术语表
    .第一个场景是构建索引为 0 的场景。
  • 资产包(Asset packs) :包含其他所有内容,包括其余场景、资源和流送资产。有关 Unity 在构建时生成的资产包的更多信息,请参阅生成的资产包

除了 Unity 自动生成的资产包外,您还可以创建自己的自定义资产包。这有助于控制资产包包含哪些资产。Unity 会将您的自定义资源包添加到最终的 AAB。有关更多信息,请参阅自定义资产包。

生成的资产包

资产包有下载大小限制。为了解决这个问题,Unity 会根据其他资产的大小更改生成资产包的方式:

  • 如果附加资源占用的存储空间少于 1.5GB,Unity 会将所有内容打包到一个资源包中,该资源包使用install-time 交付模式,称为 UnityDataAssetPack。如果您未创建任何自定义资产包,这意味着设备会在应用程序安装过程中下载资产包,并且当用户首次启动应用程序时,所有资产都可用。
  • 如果附加资源占用超过 1.5GB 的存储空间,Unity 会将流资源添加到一个名为 UnityStreamingAssetPack 的资源包中,并将所有其他资源添加到 UnityDataAssetPack 资源包中。这两个资产包都使用install-time 交付模式
  • 如果启用纹理压缩定位,Unity 会生成额外的install-time名为 UnityTextureCompressionsAssetPack 的资产包,其中包括通用资产和第一个场景所需的资产。质地压缩一种存储数据的方法,可减少所需的存储空间量。请参阅纹理压缩动画压缩音频压缩构建压缩
    请参阅术语表
    定位不会影响流资源,因此,如果您使用流媒体资源并启用纹理压缩3D图形硬件要求将纹理压缩为专用格式,这些格式针对快速纹理采样进行了优化。更多信息
    请参阅术语表
    定位时,Unity 始终将流式资产打包到一个名为 UnityStreamingAssetPack 的单独资产包中。无论您的附加资产是否超过 1.5GB,Unity 都会这样做。

对于 Unity 自动生成的资产包,Unity 不支持更改交付模式。如果要更改资产包的交付方式,请使用您的资产创建自定义资产包。

重要提示:如果这些资源包中的任何一个大于 1.5GB,Unity 会显示警告,但不会使构建失败。在构建过程中,Unity 会单独检查 Unity 生成的资源包的大小,因此请确保此类包和基本模块的总大小小于 Google Play 商店设置的限制 (4GB)。此外,Unity 不会对自定义资源包执行大小验证。这意味着,如果 Unity 生成的资源包符合 Google Play 商店的限制,但它们与自定义资源包的组合对于 Google Play 商店来说太大,则 Unity 不会显示警告或错误。但是,如果您在 Android 播放器设置中启用了 Warn about App Bundle size,则可以根据 Google Play 最大大小限制对生成的发布 App Bundle 执行完整大小验证。

自定义资产包

如果您想控制特定资产包中有哪些非代码资源,您可以创建自定义资产包。与 Unity 生成的资产包不同,您可以设置自定义资产包的交付模式。如果您创建自定义资产包,请注意 Google Play 商店对资产包有大小和数量限制。有关限制的信息,请参阅 Google Play 最大大小限制

要将自定义资产包与 Addressables 一起使用,您可以使用 Addressables for Android 包。

其他资源

Play 资产交付
设置 Play Asset Delivery