Unity初识之将小图打包成大图

Sprite Packer 打包成大图
官方文档

配置: Edit->project setting->Editor
Unity初识之将小图打包成大图

可以选一直启用还是关闭还是在build的时候才启用
例如选择两个图片 ,把他们的packing Tag设置为相同的字符串
Unity初识之将小图打包成大图
Unity初识之将小图打包成大图

然后在window->Sprite Packer 打开Sprite Packer窗口
Unity初识之将小图打包成大图

点Pack,就可以把当前项目中 packing tag相同的图片全都打包到一起
Unity初识之将小图打包成大图

打包时还有些规则什么的,可以在官方文档中查看

个人理解:
官方文档中关于sprite相关的介绍 https://docs.unity3d.com/Manual/Sprites.html
包括工具的使用,editor中如何创建图片,sprite editor的介绍,spritePacker的使用,九宫格,sprite遮罩,sprite图集

可以通过unity editor创建一个sprite , 使用spritepacker 什么的,最新的似乎文档上是用sprite atlas替代sprite packer来着,但是我觉得好像不太好用, 还是用texturePacker 来打包图片了。
Unity初识之将小图打包成大图

打包好的图集,可以在editor中看到对应的inspector属性,, spriteEditor可以设置图片,用slice把图集根据导出的png图片中小图之间的透明区域去自动把图集拆分,以便程序或者editor使用。也可以手动设置。小图的边缘,小图的锚点等等属性。这个spriteEditor实在强大啊。之前用egret 和cocos做游戏时候,找到别人的图还得用shoebox工具拆开图,然后用texturepacker 或者 egret的textureMerger 去打包成大图用,这个直接都在编辑器里操作了。真是吊。

使用纹理集的好处。
Unity初识之将小图打包成大图

这是unity官方对sprite packer打包时候的解释。大概就是小图里空白的地方多了会浪费内存。按照之前的理解,使用大纹理集好处是,在渲染的时候,cpu查找纹理信息不用来回切换texture.在同一个texture中就能查到多个图片纹理信息。以前在做h5游戏,所有的资源都是通过网络下载的,一个文件下载的请求时间和多个文件的请求耗时差很多,打包成大纹理集可以降低网络耗时,如果是native端,如果有热更新资源图片的话, 也会存在这种网络问题。