unity性能优化之图集打包——Sprite packer 和 Sprite Atlas 使用总结

UGUI 图集打包

  • 1. 为什么要进行图集打包
  • 2. NGUI和UGUI 图集的不同
  • 3. UGUI图集打包的两种方式
    • **【3.1】 sprite packer 旧版本的图集打包方式:sprite packer**
      • 第一步:设置 Mode: Always Enabled ( Legacy Sprite Packer)
        • [Mode 各个选项的说明]
      • 第二步:设置 tag 和 Mesh Type
      • 第三步:点击Pack,完成打包
      • 补充说明:
    • **【3.2】 新版本的图集打包方式:sprite atlas**
      • 第一步:设置 Mode: Always Enabled
      • 第二步: 在Project 面板中右键 create -> sprite atlas
      • 第三步: 分配资源给 sprite atlas , 完成!
      • 新功能:图集Variant(变种)的使用
      • 新功能:图集访问
    • 4. 参考资源:

1. 为什么要进行图集打包

图集打包的作用是,减少 DrawCall,提高性能;

2. NGUI和UGUI 图集的不同

(1)NGUI 必须先打出图集,然后开始做界面,我们始终都要考虑我们的UI图集,如图集的大小会不会超过 1024K,图集如何规划 ;
(2)UGUI,开发者不需要去管理自己的图集,做界面的时候只用小图,而在最终打包的时候,引擎会把我们的小图打包成一张大的图集 ;

3. UGUI图集打包的两种方式

【3.1】 sprite packer 旧版本的图集打包方式:sprite packer

第一步:设置 Mode: Always Enabled ( Legacy Sprite Packer)

Edit---->ProjectSetting------->Editor--------->Mode
unity性能优化之图集打包——Sprite packer 和 Sprite Atlas 使用总结_第1张图片

[Mode 各个选项的说明]

(1)disabled不启用、
(2)enabled for builds(legacy sprite packer):打包时启用(针对sprite packer这种打包方式)
(3)always enabled(legacy sprite packer):总是启用(针对sprite packer这种打包方式)
(4)enabled for builds:打包时启用(针对sprite Atlas这种打包方式)
(5)always enabled(针对sprite Atlas这种打包方式)

第二步:设置 tag 和 Mesh Type

只有设置了tag值才会进行打包,相同的tag值打包到同一个图集,不同的Tag值打包为不同的图集;
Mesh Type有两个可选项:
(1)Full Rect:会把所有的小图按照矩形的方式来排列,如果宽高不一样的图片,它们会自动补起。
(2)Tight: 是紧密打包方式,也就是尽可能的把图片都打包在图集上,更省空间。

unity性能优化之图集打包——Sprite packer 和 Sprite Atlas 使用总结_第2张图片

第三步:点击Pack,完成打包

Window----->2D------->Sprite Packer 点击左上角的 pack 就可以啦,完成!

补充说明:

(1) 放在Resources文件夹中的图片,Unity不会打包到图集中!
(2) 打包好的图集会放在缓存文件夹Project\Library\AtlasCache里面!

【3.2】 新版本的图集打包方式:sprite atlas

sprite Atlas是2017版本之后的图集打包方式, Sprite Atlas 针对旧版本的图集打包系统Sprite Packer在性能和易用性上的不足,进行了全面改善。

第一步:设置 Mode: Always Enabled

Edit---->ProjectSetting------->Editor--------->Mode
unity性能优化之图集打包——Sprite packer 和 Sprite Atlas 使用总结_第3张图片

第二步: 在Project 面板中右键 create -> sprite atlas

unity性能优化之图集打包——Sprite packer 和 Sprite Atlas 使用总结_第4张图片

第三步: 分配资源给 sprite atlas , 完成!

可以将文件夹,纹理或精灵分配给Sprite Atlas。可以将整个文件夹分配给Sprite Atlas资产,该文件夹中的所有纹理(包括子文件夹)都将被打包。
unity性能优化之图集打包——Sprite packer 和 Sprite Atlas 使用总结_第5张图片

新功能:图集Variant(变种)的使用

Variant,就是指原有图集的一个变种。它会复制原图集的贴图,并根据一个比例系数来调整复制贴图的大小。通常用于为高分辨率和低分辨率的屏幕准备不同的图集。因为如果只准备一套高分辨率的图集,在低分辨率的设备上占用内存过多。反之,如果只准备一套低分辨率图集,在高分辨率的设备上就会模糊。

如下图,SpriteAtlas 1.spriteatlas是新建的一个低清图集,在检视窗口中将Type设为Variant,Master Atlas设为SpriteAtlas。这里为了与原图进行更明显的对比,将Scale设为0.1, 点击Pack Preview。
unity性能优化之图集打包——Sprite packer 和 Sprite Atlas 使用总结_第6张图片

新功能:图集访问

Sprite Atlas作为一种资源开放给用户,可以在脚本中访问,还可以通过名字获取图集中的精灵。这样用户可以更加直接地随时编辑图集,而且不用去单独加载图集中的每个精灵。
unity性能优化之图集打包——Sprite packer 和 Sprite Atlas 使用总结_第7张图片

4. 参考资源:

(1)UGUI研究院之全面理解图集与使用(三) -------------作者:雨松MOMO
(2)unity中sprite packer、sprite Atlas和sprite mask ----------作者:差点忘记打铁了
(3)Unity2017新功能Sprite Atlas详解----------------作者:Mr_传奇

你可能感兴趣的:(unity基础,unity,性能优化,UGUI图集打包,Sprite,Packer,Sprite,atlas)