Version: 2021.1
变体精灵图集
准备要分发的精灵图集

精灵图集工作流程

按照以下步骤创建精灵图集:

  1. 创建精灵图集资源。
  2. 选择一组要打包到精灵图集中的对象 (Objects for Packing)。
  3. 在精灵图集上启用 Include in Build 以便将精灵图集包含在项目中。
  4. (可选)创建变体精灵图集
  5. (可选)准备要分发的精灵图集。
    • 准备要分发的精灵需要使用脚本通过后期绑定进行加载。
  6. (可选)优化项目中的精灵图集的使用和大小以提高性能。

创建精灵图集资源

要创建__精灵图集__资源,请选择 Asset > Create > Sprite Atlas。Unity 在 Asset 文件夹中创建精灵图集,文件扩展名为 *.spriteatlas。

选择要添加到“Objects for Packing”列表的项

Objects for Packing 列表显示精灵图集中当前选定的项。可以将 Texture2D 和精灵资源放入此列表中。将文件夹直接拖放到列表中,即可自动将文件夹中的所有有效内容添加到列表中(仅文件夹显示在列表中)。

要选择列表的特定项,请执行以下操作:

  1. 选择精灵图集资源,并在其 Inspector 窗口中找到 Objects For Packing 列表。此列表显示 Unity 在构建精灵图集时要打包的一组项。

  2. 要添加项,请选择列表右下角的加号 (+) 图标以创建新行。将一个有效资源拖到空行上即可将其添加到列表中,或选择此行右侧的圆圈图标以打开 Select Object 窗口。从 Object Picker 窗口中选择一个资源,将其添加到列表中:

    要从列表中删除一项,请单击 Objects For Packing 列表右下方的减号 (-) 图标。要替换一项,请将另一项拖动到其所占据的行,即可在列表上将其替换。

  3. 选择 Pack PreviewAsset Preview 窗口中预览组合的图集纹理。

Include in Build

所有精灵图集在创建时均默认启用 Include in Build。这意味着,Unity 会在项目的构建中包含精灵图集,并在构建运行时自动加载它们。启用或禁用“Include in Build”属性可以控制项目构建中包含的精灵图集。

取消选中“Include in Build”会禁用此行为,并在准备要分发的精灵图集时完成。

如何优化精灵图集的使用和大小以提高性能

当精灵在场景中处于活动状态时,Unity 会加载该精灵所属的精灵图集以及该精灵包含的所有纹理。如果 Unity 加载具有巨大纹理的精灵图集,而场景中没有任何对象使用大多数的这些纹理时,这样做会导致过高的性能开销。

为了优化精灵图集的使用,理想情况下,场景中激活的所有或大多数精灵都应属于同一个图集。最好根据精灵纹理的常见用途将精灵纹理分割成多个较小的图集。

降低性能开销的另一种方法是减少精灵图集中打包纹理之间的空白空间。此做法可减小精灵图集的大小。要执行此操作,请选择精灵图集,并检查其 Inspector 设置底部的 Pack Preview 窗口中打包的图集纹理。如果没有可用的预览,请在 Objects for Packing 列表下选择 Pack Preview 按钮以生成打包的纹理。

包含过多空白空间的精灵图集。
包含过多空白空间的精灵图集。

如果可见的空白空间过多,可以手动减小打包纹理的大小,从而减少空白空间量并优化图集的大小。为此,请前往 Inspector 窗口底部的 Platform-specific overrides 面板。从 Max Texture Size 设置的下拉菜单中选择一个较小的值,然后选择 Pack Preview 以重新生成打包的纹理。

设置 Max Texture Size。
设置 Max Texture Size。

Max Texture Size 值小于精灵图集纹理的当前尺寸时,Unity 会减小打包纹理尺寸以尽可能与设置的 Max Texture Size 匹配,并自动修剪掉任何多余的空白空间。如果选择的一些精灵纹理超过精灵图集的 Max Texture Size 设置,则精灵图集将忽略 Max Texture Size 设置,并保持为了以原始尺寸包含精灵纹理而需要的最小尺寸。

精灵图集中的纹理保持原始尺寸。
精灵图集中的纹理保持原始尺寸。
变体精灵图集
准备要分发的精灵图集