文档

支持

Cloud Content Delivery

Open Unity Dashboard

Cloud Content Delivery

通过 CCD 缩减应用程序大小

Reduce your initial application size by delivering game content through Cloud Content Delivery after players install the app.
阅读时间6 分钟最后更新于 1 个月前

为了吸引玩家下载您的游戏,一个好的做法是提供较小的应用程序初始大小,然后让玩家稍后根据需要下载新关卡和资源的文件。 本节使用一个示例项目来引导您将 CCD 和 Addressables 结合使用以缩减应用程序的大小。

缩减应用程序大小的过程摘要

缩减应用程序大小的过程摘要如下。每个步骤都将在本文档的后面部分展开。
  1. 安装 Addressables 和 CCD Management 包。
  2. 在 CCD 中配置一个存储桶。
  3. 为游戏创建一个新场景,或使用要通过 CCD 发送的现有关卡。
  4. 在 Unity 编辑器中配置您的资源。
  5. 设置脚本通过 Addressables 调用内容。
  6. 将新资源发布到 CCD Dashboard(CCD 后台)。
为了完成这些步骤,需要满足以下条件:
  • Unity 编辑器 2019.4 或更高版本
  • Addressables(最新版本;此示例使用版本 1.19.15)
  • CCD Management(最新版本;此示例使用版本 2.0.1)

安装所需的包

首先,确保您已安装所需的 Addressables 和 CCD Management 包。
  1. 在 Unity 编辑器中,选择 Window(窗口)> Package Manager(包管理器)
  2. 搜索 Addressables,选择版本 1.19.15+,然后选择 Install(安装)
  3. 搜索 CCD Management,选择版本 2.0.1+,然后选择 Install(安装)

在 CCD 中配置一个存储桶

在 Unity Gaming Services Dashboard(Unity 游戏服务后台)中创建和配置存储桶的步骤如下。
  1. 按照 CCD Dashboard(CCD 后台)的说明操作以访问 CCD 中的存储桶。
  2. 按照存储桶的说明操作以创建存储桶。
    1. 确保将 Bucket write conditions(存储桶写入条件) 设置为 Open to all(向所有人开放)
    2. 选择 Environment(环境) 时,将其设置为 Production(生产)
  3. 选择 Create(创建) 以创建存储桶。
  4. 从存储桶列表中选择该存储桶。
  5. 选择 Upload Content(上传内容),然后从计算机上传任何文件。
  6. 刷新页面,然后创建发布版本
  7. 从 Releases(发布版本)选项卡中选择该发布版本。
  8. 选择 Addressable Remote Path URLs(Addressable 远程路径 URL)选项卡。
  9. 复制“Badge: Latest(标示:最新)”URL 供稍后在 Unity 编辑器中使用。\

配置 Unity 编辑器

在 Unity 编辑器中进行以下设置以便继续执行缩减应用程序大小的过程。
  1. 转到 Window(窗口)> Asset Management(资源管理)> Addressables > Groups(组)
  2. 如果您以前未使用过可寻址资源 (Addressable Assets),必须选择 Create Addressables Settings(创建 Addressables 设置)。\
  3. 在 Addressables Groups(Addressables 组)窗口中选择 Profile(配置文件)> Manage Profiles(管理配置文件)
  4. 选择 Default(默认)配置文件。
  5. Remote(远程) 设置为 Custom(自定义)
  6. 展开 Remote(远程)字段,并将 Remote.LoadPath 设置为先前保存的 URL。\
  7. 在 Unity 编辑器主窗口中,选择 Window(窗口)> Asset Management(资源管理)> Addressables > Settings(设置)
  8. 启用 Build Remote Catalog(构建远程目录)
  9. Build & Load Paths(构建和加载路径) 设置为 Remote(远程)。\

准备场景

接下来,准备一个或多个场景以通过 CCD 进行加载。确保您至少有一个不同于初始关卡的场景。
  1. 在 Unity 编辑器 Project(项目)选项卡的资源中找到您的场景。
  2. 在 Inspector(检视面板)选项卡中,启用 Addressable(可寻址)。\

或者,将场景从 Project(项目)选项卡拖动到 Addressables Groups(Addressables 组)选项卡的 Default Local Group(默认本地组)中。\
  1. 在 Addressables Groups(Addressables 组)选项卡中,右键单击该资源,然后选择 Simplify Addressable Names(简化可寻址资源名称) 以便于阅读。
  2. 选择 Default Local Group(默认本地组)。
  3. 在 Inspector(检视面板)中:
    1. Build & Load Paths(构建和加载路径) 设置为 <custom>
    2. Build Path(构建路径) 设置为 RemoteBuildPath
    3. Load Path(加载路径) 设置为 RemoteLoadPath
  4. 返回 Addressables Groups(Addressables 组)窗口,选择 Build(构建)> New Build(新建构建)> Default Build Script(默认构建脚本)

比较构建(可选)

在此可选步骤中,一次使用场景来构建应用程序,另一次不使用场景来构建应用程序,然后比较两次构建的大小。在此测试应用程序中,大约有 30 MB 的大小差异。在具有更多关卡和资源的大型应用程序中,节省的大小会更大。
包含场景和资源的发布版本的大小(左)与不包含场景的发布版本的大小(右)。

配置脚本

在主场景(与项目一起构建的场景)中,确保添加用于加载下一个关卡的游戏按钮或事件。 您可以将以下示例脚本附加到游戏中的按钮。请务必在 Inspector(检视面板)中填写可寻址资源名称(在本例中为 sceneName)。 C#
using UnityEngine;using UnityEngine.EventSystems;using UnityEngine.SceneManagement;using UnityEngine.AddressableAssets; public class LoadSceneCCD : MonoBehaviour{ public string sceneName = ""; public void LoadTargetScene() { Addressables.LoadSceneAsync(sceneName, UnityEngine.SceneManagement.LoadSceneMode.Single, true); }}

准备 AssetBundle 以便上传到后台

按照以下步骤准备要上传到后台的场景资源:
  1. 在 Unity 编辑器中,选择 Window(窗口)> Asset Management(资源管理)> Addressables > Groups(组)
  2. 选择 Build(构建)> New Build(新建构建)> Default Build Script(默认构建脚本)
  3. 构建完成后,在本地驱动器上转到项目文件夹,然后转到
    ServerData\StandaloneWindows64
    。请注意,此文件夹可能因构建的目标平台而异。
  4. 记下以 .hash 和 .bundle 结尾的文件。

上传到后台

上传您在最近构建的 .hash 和 .bundle 文件(在上一步中生成)。如果这是第一次上传,请选择并上传所有文件。
  1. 返回 CCD Dashboard(CCD 后台)的存储桶页面。
  2. 选择您创建的存储桶。
  3. 在 Latest(最新)选项卡的 Entries(条目)下,选择 Upload Content(上传内容)选项卡。\
  4. 浏览并选择在上一步中构建的文件。
  5. 选择 Upload Files(上传文件)
  6. 上传完成后,选择 Refresh Page(刷新页面)
  7. 选择 Create Release(创建发布版本),为新内容应用 Latest(最新)标示。

测试构建

您可以单击会触发加载 CCD 场景的按钮或操作来测试您的构建。如果一切顺利,您的 CCD 场景应该在一小段延时后加载。您的构建应该只包含主场景,不包含要通过 CCD 加载的关卡,否则不会缩减应用程序的大小。