打图集的意义

相同图集的UI图片可以合批,减少drawcall优化性能。

开启图集

Project Settings——Editor——Sprite Packer——“Sprite Atlas”。我们测试时可以选择Always。

使用图集

首先,确保Unity已经安装了2D Package。

准备一个文件夹用来保存图集,在文件夹中右键——2D——Sprite Atlas。然后根据图集内容取一个名字。

Master

Master图集是主要集合,其中的Allow Rotation、Tight Packing、Alpha Dilation都是为了减小生成的图集的大小的优化选项。

我们点击面板上的“Objects for Packing”的加号,会发现弹出的选择面板中有提示

1
t:sprite t:texture2d t:folder

中间列出了可以直接加进Packing的文件类型,也可以把整个文件夹放进来,比如输入t:folder Icon就能快速查询到名字为Icon的文件夹。注意,选择文件夹后,文件夹中的子文件夹内的图片也会被识别并加入到图集中。

Variant

Variant图集需要引用Master图集,Variant继承Master图集的属性和Packing列表,Variant图集只有一个Scale属性值得注意,用来生成小倍数的图集。 最后根据不同机型,我们可以设置优化,低端机型使用小图集。

新图集的优点

在Unity2017之前,使用的是Sprite Pack图集打包模式,新版的Unity已经完全弃用了旧版图集。旧版图集需要单独设置每一个UI图片的压缩格式才能让这些UI放进一个图集当中,新版图集并不需要单独设置。

在代码中加载图集

1
2
SpriteAtlas atlas = Resources.Load<SpriteAtlas>("Atlas/testAtlas");
GetComponent<Image>.sprite = atlas.GetSprite("boot1");

打图集的基本规则

在UI设计时,尤其是手游,每个界面基本是分开的,开启某个界面时需要关闭之前的界面。

  1. 一个界面的元素,放到同一个图集内。
  2. 准备几个公共图集,里面存放经常使用的UI元素。这种公共图集一般也要常驻在内存当中。
  3. 打进图集内的图,尽量是小图标。大图没有必要放进图集内。