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

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

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

Unity游戏开发——UnityUGUI打包图集_第1张图片


Unity游戏开发——UnityUGUI打包图集_第2张图片

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

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

Unity游戏开发——UnityUGUI打包图集_第3张图片

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

Unity游戏开发——UnityUGUI打包图集_第4张图片

Unity游戏开发——UnityUGUI打包图集_第5张图片

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

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

    public Image btn;
  
    void Start () {
        string str = "text";//Resources文件夹下面的名字
        //SpriteRenderer[] sp = Resources.LoadAll(str);
        Sprite[] sprite = Resources.LoadAll(str);
        foreach (var item in sprite)
        {
            print(item.name);
            
        }
        btn.sprite = sprite[2];
    }
这样就和NGUI比较相似了,可以进行图集打包和获取全部图集,这样做还可以优化图集的大小。


你可能感兴趣的:(Unity游戏开发——UnityUGUI打包图集)