1. 首页菜单

unity3d editor sprite 分割后的结果保存

2015年01月28日 16:50 0 点赞 0 评论 更新于 2025-11-21 14:28

之前有人留言希望我介绍一下 Sprite Packer 的用法,那么我就顺便介绍一下 Unity3D Editor 中 Sprite 分割后的结果保存相关内容。

制作图集的必要性

我们用于制作 Sprite 的图片,通常会存在大量空白区域。在完成 Sprite 绘制后,这些空白部分很可能就失去了作用。为了避免资源浪费,我们可以将各个 Sprite 制作成图集,充分利用图片上的空间。这时,就需要一个制作图集的工具。

其实,实现制作图集的功能并不复杂。其原理是对各个 Sprite 上的图片进行像素复制处理,计算出一个矩形范围,然后按照一定规律将所有拾取的图片像素放置在一张图片上。不过,这些较为底层的操作让很多人望而却步,因此有许多现成可用的工具。例如,NGUI 的较新版本就具备自动图集功能,此外还有很多专门的图集制作软件。

Unity3D 的 Sprite Packer 工具

Unity3D 在推出 2D 功能的同时,附带了制作图集的工具——Sprite Packer。下面详细介绍它的用法:

开启 Sprite Packer

在使用该功能之前,需要先在 Editor Setting 中打开 Sprite Packer。

打开 Sprite Packer 窗口

打开 Sprite Packer 窗口后,我们会看到其主要操作按钮位于左上角的“Pack”按钮。但此时点击该按钮,不会有任何结果显示。

为 Sprite 设置 Packing Tag

在项目文件夹中,准备几个已经完成切割的 Sprite。选择这些 Sprite,在其属性中输入一个 Packing Tag 名称。这里我们将所有 Sprite 的 Packing Tag 都设置为“enemys”。再次点击“Pack”按钮,就会生成将刚才那些 Sprite 拼接起来的图集。

不同 Packing Tag 的效果

如果将主角土豆人的 Packing Tag 改为“players”(或者其他与之前不同的名称),再次点击“Pack”按钮,会发现土豆人在原来的图集里消失了。在图集选择界面中,可以看到新增加的“players”类别。选择“players”类别,就能再次看到土豆人。这是因为 Sprite Packer 制作图集是依据 Packing Tag 标签进行分类的,它会将具有相同标签的物体归为一类并制作成图集。

图集制作的自动化及相关情况

实际上,我们在这个过程中能进行的手动操作并不多,整个图集制作过程是自动完成的。完成图集制作后,在项目面板中选择 Sprite 时,图集中相应的 Sprite 会高亮显示。

为何默认禁用 Sprite Packer

既然这个功能如此自动化,为什么一开始它是禁用状态,需要我们手动在 Editor Setting 中打开呢?原因在于,Unity 在打开工程时会先花费一些时间来运算图集。如果需要计算的 Sprite 数量较多,工程打开的速度就会变慢。计算好的图集会存放在缓存文件夹“Project\Library\AtlasCache”中。如果删除该文件夹中的内容,Unity 将会再次进行图集运算。另外,如果选择制作图集,Sprite 的原图将不会经过压缩,以便拾取像素用于制作图集。