前言
Unity3D中UGUI的Image组件、Unity2D的SpriteRender组件等都需要使用Sprite类型的图片。
用户在导入图片资源后,可以切换TextureType为Sprite(2D and UI)类型。
在使用精灵这一类型时,还有以下几个问题需要解决:
1,官方PackingTag不好使
PS:需要注意的是本文中的SpriteAtlas专指由若干Sprite图片打成的大图集,而不是Unity3D2017新加入的Sprite Atlas组件。
官方自带图集解决方案SpritePacker
有过NGUI经验的小伙伴都知道,每次要使用图片都要先加入到图集中。而UGUI的原理则是,让开发者彻底模糊图集的概念,让开发者不要去关心自己的图集。做界面的时候只用小图,而在最终打包的时候Unity才会把你的小图和并在一张大的图集里面。然而这一切一切都是自动完成的,开发者不需要去管它。
启用SpritePacker
Editor->Project Settings->Editor。默认情况下Sprite Packer的Mode选项是Disabled状态。
建议设置Mode为:Always Enabled(Legacy Sprite Packer)
PS:笔者设置Mode为Always Enabled,但是在打开Sprite Packer的时候却提示:Leagcy sprite packing is disabled…个人推测,该选项对应的功能还没有完善开放。
启用后,Unity3D会自动把具有相同Packing Tag的Sprite打成图集。图集以加密方式存储在Libary/AtlasCache目录下。需要注意的是要打成图集的Sprite不能放到Resources目录下,该目录下的精灵不会被打成图集。
打开SpritePacker
Window->2D->SpritePakcer可以打开SpritePacker,用来预览图集。
动态加载图集或精灵
官方方案旨在淡化图集,因此未提供直接加载图集或者根据已有图集动态加载精灵的方法。因此有这方面需求的需要自己造轮子了。
可以参考雨松的方案:https://www.xuanyusong.com/archives/3304 本文不再赘述。
TexturePacker方案
官网:https://www.codeandweb.com/texturepacker
TexturePacker是收费网站,可以给作者写邮件,申请序列号。
这里提供一个4.9.0的破解版供学习用:https://download.csdn.net/download/iningwei/11100528
https://www.xuanyusong.com/archives/3304
https://www.codeandweb.com/texturepacker
https://www.cnblogs.com/lancidie/p/8638926.html
https://assetstore.unity.com/packages/tools/sprite-management/texturepacker-importer-16641
https://www.cnblogs.com/zhoujiangyue/articles/6842280.html