版本:Unity 6 (6000.0)
语言:英语
创建自定义资源包
Android 图形

运行时管理资源包

Unity 提供 API 用于运行时管理资源包。它们使用 Google 的 PlayCore API,这意味着它们与 PlayCore 具有相同的限制,并且无法管理 install-time 资源包。使用 PlayCore API 还意味着您的应用程序需要 PlayCore 插件在 Unity 之外创建的一组代码,可在 Unity 中创建功能。Unity 中可以使用两种类型的插件:托管插件(使用 Visual Studio 等工具创建的托管 .NET 程序集)和原生插件(平台特定的原生代码库)。 更多信息
参见 词汇表
。如果您的项目包含资源包(自定义资源包或 Unity 生成的资源包),Unity 会自动将 PlayCore 依赖项添加到应用程序的清单中。

下载资源包和访问其资源的方式取决于资源包的交付模式。共有三种资源包交付模式

  • install-time:Google Play 会在设备安装应用程序时自动下载 install-time 资源包。Google Play 将这些资源包视为基本应用程序的一部分,最终用户无法在不卸载整个应用程序的情况下卸载它们。PlayCore API 不处理 install-time 资源包,这意味着您无法检查状态、请求下载或删除 install-time 资源包。您也不能直接访问这些资源包中的资源,除了 Unity 生成的 install-time 资源包中的流式资源。要访问流式资源,请使用 Application.streamingAssetsPath 获取流式资源位置的路径,然后使用 UnityWebRequest 访问该路径中的资源。如果您创建自定义资源包,则无法使用标准文件 API 访问其中的资源。而是使用 Android 的 AssetManager API
  • fast-follow:Google Play 会在安装应用程序后自动开始下载 fast-follow 资源包。但是,第一次启动应用程序时,并非所有 fast-follow 资源包都可用。要检查状态并下载 fast-follow 资源包,请参阅 下载资源包
  • on-demand:Google Play 不会自动下载 on-demand 资源包。您必须手动启动下载。有关如何执行此操作的信息,请参阅 下载资源包

有关交付模式的更多信息,请参阅 交付模式

下载资源包

如果您的应用程序使用 fast-followon-demand 资源包,则设备必须在应用程序可以访问其中的资源之前下载这些资源包。要检查资源包的状态并在它们不在设备上时下载它们,您必须首先知道每个资源包的名称。要获取 Unity 生成的资源包的名称,请调用 AndroidAssetPacks.GetCoreUnityAssetPackNames。没有运行时 API 来获取 自定义资源包 的名称,因此您必须自己跟踪它们。您在构建时设置自定义资源包的名称;它是目录的名称。

获取资源包名称后,要检查每个资源包的状态,请调用 AndroidAssetPacks.GetAssetPackStateAsync,传入资源包名称。这将返回您查询的资源包的状态,您可以使用结果确定是否需要下载资源包。如果您想快速查询所有 Unity 生成的资源包的状态,可以使用 AndroidAssetPacks.coreUnityAssetPacksDownloaded。这有助于您确保在加载任何 场景场景包含游戏环境和菜单。将每个独特的场景文件视为一个独特的关卡。在每个场景中,您放置环境、障碍物和装饰,本质上是设计和构建游戏的各个部分。 更多信息
参见 词汇表
除了第一个场景或尝试访问 Unity 处理的其他资源之外,每个 Unity 生成的资源包都可用。

对于您需要下载的每个资源包,请调用 AndroidAssetPacks.DownloadAssetPackAsync,传入资源包名称。在资源包下载时,监控下载状态,因为下载可能会暂停或失败。有两种方法可以做到这一点

其他资源

创建自定义资源包
Android 图形