NGUI内置图集打包工具,生成的图集效率太低(空白区域太多),并且对图集的可调整性极差。相反Texturepacker支持如Unity、Cocos2d、Flash等多个平台,极丰富的配置参数,如DPI、图片通道格式,对齐算法,允许图集旋转等,提高了游戏中使用贴图的灵活性。
关于如何手动将Texturepacker制作NGUI图集。这里不作介绍。但为了读者对下面内容不感到突兀建议读者先了解该制作过程。
而本文的目的就是介绍如何将这一制作过程自动化。
- Unity3D 5.3.3
- Texturepacker 3.3.2
- NGUI 3.8.2
目录结构
+Assets
+RawResources
+Atlas
+XX
- xx.png
XX.tps
+Resources
+Atlas
-XX.png
-XX.mat
-XX.txt
-XX.prefab
Assets/RawResources/Atlas/美术切图存放根目录
Assets/RawResources/Atlas/XX根目录下区分的游戏模块切图目录
Assets/RawResources/Atlas/XX.tps要目录下区分游戏模块的Texturpacker工程文件
Assets/Resources/Atlas存放NGUI图集目录
static string tpCommand = "D:/CodeAndWeb/TexturePacker/bin/TexturePacker.exe";
static string tpProjectsDir = Application.dataPath + "/RawResource/Atlas/";
static string atlasDir = Application.dataPath + "/Resources/Atlas/";
TexturePacker工程文件
Assets/RawResources/Atlas/下存放各个模块对应的游戏切图Texurepacker工程文件。工程配置项如下,这里仅作参考,务必按照项目要求调整。但有两点需要注意。
1. 并没填写DataFile和TextureFile输出目录。考虑到以后的维护性,选择在代码中决定图集的输出目录更具优势。
2. 不允许Allow rotation。据我所知直至NGUI3.8.2, 并不支持该选项。
打包命令
打包命令只有2项任务,导出Texpacker图集,然后转换成NGUI图集。
/// <summary>
/// 自动构建图集菜单命令
/// </summary>
[MenuItem("GameTools/构建图集")]
public static void BuildAtlas()
{