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

来源:互联网 发布:古代西亚北非文明知乎 编辑:程序博客网 时间:2024/06/05 17:08

现在Unity中使用UGUI实现UI的越来越多,我们项目也才4.6.1升级到5.6.3对项目全面升级。5.xUGUI已经非常成熟,各种资料各种效果都非常多。由于之前一直习惯用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比较相似了,可以进行图集打包和获取全部图集,这样做还可以优化图集的大小。


原创粉丝点击