包含此页的版本:
不含此页的版本:
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-follow或on-demand资产包,设备必须先下载这些资产包,然后应用程序才能访问其中的资产。若要检查资产包的状态并在设备上不存在资产包时下载它们,您必须首先知道每个资产包的名称。若要获取 Unity 生成的资产包的名称,请调用 AndroidAssetPacks.GetCoreUnityAssetPackNames。没有运行时 API 来获取自定义资源包的名称,因此您必须自己跟踪它们。您可以在构建时设置自定义资源包的名称;这是目录的名称。
获得资产包的名称后,若要检查每个资产包的状态,请调用 AndroidAssetPacks.GetAssetPackStateAsync,并传入资产包名称。这将返回您查询的资产包的状态,您可以使用该结果来确定是否需要下载资产包。如果您想快速查询每个 Unity 生成的资产包的状态,可以使用 AndroidAssetPacks.coreUnityAssetPacksDownloaded。这有助于确保在加载任何资产包之前,每个 Unity 生成的资产包都可用场景场景包含游戏的环境和菜单。将每个唯一的场景文件视为一个独特的关卡。在每个场景中,你放置你的环境、障碍物和装饰品,基本上是将你的游戏设计和构建成碎片。更多信息
请参阅术语表除了第一个资源之外,或者尝试访问 Unity 处理的其他资源。
对于需要下载的每个资产包,请调用 AndroidAssetPacks.DownloadAssetPackAsync,并传入资产包名称。下载资产包时,请监控下载状态,因为下载可能会暂停或失败。有两种方法可以执行此作: