首页 > Unity3D频道 > 【UGUI研究院】 > UGUI研究院之Sprite Packer图集分配错误(十五)
2015
05-20

UGUI研究院之Sprite Packer图集分配错误(十五)

昨天我同事给我说他用Sprite Packer打包图集,发现本地格式为ARGB32的一张图,但是打完后却发现RGBA32 ,原本一张1024的图集被莫名其妙的拆分成了两张。我看了半天也看不出来名堂,有可能是bug吧。

而且Sprite Packer自动打包图集还有个问题,比如我的界面全都是带透明的1024,但就有一个是不带透明的。Sprite Packer的自动打包策略会打成两个图,可以1024的图集还有一些空间并没有被利用,所以还是是希望他们能打到一个图集上。

最后我是这么解决的,按照我之前的文章 http://www.xuanyusong.com/archives/3315 强制设置图集的压缩格式。大概分为三类

1.带透明通道

2.不带透明通道

3.手动设置的格式

比如通过tag 名称 或者文件夹名子 是否带下划线  name_truecolor  name_compress name

entry.settings.format=ins.desiredFormat;

改成对应的压缩格式就行了。。

目前这样的做法已经解决了我们的问题,如果谁能更清楚Sprite Packer的压缩规则,欢迎在下面留言,谢谢。。

雨松MOMO提醒您:亲,如果您觉得本文不错,快快将这篇文章分享出去吧 。另外请点击网站顶部彩色广告或者捐赠支持本站发展,谢谢!

--

最后编辑:
作者:雨松MOMO
专注移动互联网,Unity3D游戏开发
捐 赠如果您愿意花10块钱请我喝一杯咖啡的话,请用手机扫描二维码即可通过支付宝直接向我捐款哦。

  1. 设置tag后使用图片,用profiler可以看到会有一个图集占用内存,另外每个用到的单张sprite也会占用内存,而且单张的透明区域也是算在内的,甚至比所在图集占用内存更高,momo大大有没有看过这个呢?

  2. Momo大,因为美术给的图集都不是2的幂,所以图片都不能压缩,Sprite Packer打包后,很占内存,如果要使用Sprite Packer,就必须要求小图集也是2的幂,才能压缩吗?

  3. 5.X版本用了Sprite Packer后,再用新版本的AB打包方式,Sprite Packer的依赖会有问题,不知道有没有测试过呢?

    • 比如图片p1,p2,p3是一个Sprite Packer 1prefab1依赖Sprite Packer 1,prefab2也依赖Sprite Packer 1,两个prefab分别打包到不同的AB,一个成功依赖了Sprite Packer 1,另外一个就没有成功。官网上有搜索到相应的问题,官方好像有给了一个回复,说是Sprite Packer 打包的时候是存在于缓存中,新版本的AB打包对缓存有什么问题好像。不知道要怎么解决。

  4. 雨大,我用unity5.0的spritepacker打包图片,在ios跟android 上面都没问题,在wp8上面,场景一切,图片就丢失了,应该是wp为了内存管理给释放了,我现在不知道怎么把这些图片加载进来了