您的位置:首页 > 移动开发 > Unity3D

Unity游戏开发——UnityUGUI打包图集

2017-09-14 22:13 267 查看
现在Unity中使用UGUI实现UI的越来越多,我们项目也才4.6.1升级到5.6.3对项目全面升级。5.x中UGUI已经非常成熟,各种资料各种效果都非常多。由于之前一直习惯用NGUI在使用UGUI还是比较顺利的,都是一个作者写的都是控件式开发,唯一不爽的一点就是UGUI的图集管理。

习惯了NGUI的图集管理,在使用UGUI的时候也想把他们打包到一张图集上,查看了UGUI的打包方式,本以为和NGUI一样可以可以把分散的小图打到一张大图上。一直是这么理解的打包图集。







在打包工具中是一张图片,UGUI这样打包的优势是在使用这些图片的时候他们的DrawCalls就不会在增加了,我看别的有可以打到一张大图的,不知道为什么我这里没有成功,我unity版本是5.6.3f。

自带的打包工具没有满足要求,寻找其他解决方案,在网上找到了TexturePackerGUI这个工具,看到TexturePackerGUI支持Unity。



可以直接把需要打包的图片放到软件中进行打包组合,这里不涉及效率问题单纯只是进行打包。





这样就可以打包到一张图片上来,当然你也可以进行一下其他的设置,图片格式等等。

NGUI我们可以直接遍历图集获取到里面的全部子图片,直接支持图集类获取到。使用UGUI也可以获取到全部子图片但是需要自己写一个方案实现。

public Image btn;

void Start () {
string str = "text";//Resources文件夹下面的名字
//SpriteRenderer[] sp = Resources.LoadAll<SpriteRenderer>(str);
Sprite[] sprite = Resources.LoadAll<Sprite>(str);
foreach (var item in sprite)
{
print(item.name);

}
btn.sprite = sprite[2];
}
这样就和NGUI比较相似了,可以进行图集打包和获取全部图集,这样做还可以优化图集的大小。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: