UGUI的原理则是,让开发者彻底模糊图集的概念,让开发者不要去关心自己的图集。做界面的时候只用小图,而在最终打包的时候unity才会把你的小图和并在一张大的图集里面。Editor->Project Settings 下面有sprite packer的模式。Disabled表示不启用它,Enabled For Builds 表示只有打包的时候才会启用它,Always Enabled 表示永远启用它。 这里的启用它就表示是否将小图自动打成图集。如下图:

用TexturePacker打图集用于UGUI中-LMLPHP

将需要打到一个图集的所有图片的packing tag设置成同一个名称,如下图,打包的时候unity就会把packing tag相同的图片打到一个图集上面。

用TexturePacker打图集用于UGUI中-LMLPHP

但是打过图集的图片,如果有其他prefab用到其中某个图片的话,其他prefab在打包的时候就会把这个图集也打进去,所以很多公共资源就没办法打图集。为了让公共资源既能打图集,而用到这个图集里的图片的prefab打包的时候又不把这个图集打进去,所以就用TexturePacker工具打出图集给UGUI使用,具体如下:

1,从Asset Store里下载TexturePackerImporter ,然后导入到项目中。

2,下载Texturepacker工具http://www.codeandweb.com/texturepacker/unity

3,安装好之后,打开Texturepacker,把需要打包到一个图集的散图拖进去,然后设置设置 Data file和Texture file,路径是项目中放图集的文件夹路径,如下图:

用TexturePacker打图集用于UGUI中-LMLPHP

然后点击导入用TexturePacker打图集用于UGUI中-LMLPHP,然后在unity中就能看到一张单独的大图,大图下面是一张张小图,这是之前导入unity的TexturePackerImporter插件帮我们做好的事情。另外注意这张大图不需要Mipmaps,因为没有镜头的拉远拉近效果,所以把勾选去掉用TexturePacker打图集用于UGUI中-LMLPHP。导入unity的除了一张大图之外还有一个.tpsheet文件,这个文件里记录了每一张小图在这张图集中的位置及其大小等信息。

05-19 05:51