【Unity优化】Unity图集打包(2020新版本和旧版本)

对于Unity中UI使用的图片精灵,打包成图集,可以降低DrawCall,提高性能。

Unity2019以前的版本


一、开启图集功能
默认图集是不开启的,
需要在Editor>Project Settings设置中,将SpritePacker的Mode修改为Always Enabled(总是启用)或者Enabled For Builds(在构建时启用)。

二、设置图片的图集名称

在Texture Type为Sprite的图片设置中,填写Packing Tag字段。
Unity会自动将Packing Tag名字相同的图片打包为同一个图集。

三、查看图集

点击Windows>2D>Sprite Packer可以查看打包好的图集,若没有则按一下pack按钮。

图中红框位置可以设置图集打包方式。
DefaultPackerPolicy:是默认的打包方式,也是矩形打包方式。他会把所有的小图按照矩形的方式来排列,如果宽高不一样的图片,它们会自动补齐。

TightPackerPolicy:是紧密打包方式,也就是尽可能的把图片都打包在图集上,这种方式要比DefaultPackerPolicy打包的图片更多一些,也就是更省空间。

四、图集的使用

操作时还是正常使用原图片即可。

Unity2020之后的版本 


Unity2020之后,弃用了旧版的图集,图片设置中的Packing Tag变灰,无法修改。
需要使用新版的Sprite Atlas进行图集打包。

一、修改设置并导入2D Sprite包


和旧版本一样,在Editor>Project Settings设置中,将SpritePacker的Mode修改为Always Enabled(总是启用)或者Enabled For Builds(在构建时启用)。


然后去Package Manager中,找到2D Sprite包并导入。

二、创建Sprite Atals文件

在Project视图右键,Create>2D>Sprite Atlas。

 

三、添加要打包的图片或文件夹

将要打包的图片或文件夹,放置到图集文件的Objects for Packing中。然后单击PackPreview按钮,可以看到图集预览。

四、图集的使用

操作时还是正常使用原图片即可。

也可以用代码调用。GetSprite方法填原图片的名称。

 public Image img;
    void Start()
    {
        SpriteAtlas atlas = AssetDatabase.LoadAssetAtPath<SpriteAtlas>("Assets/Atlas/MyAtlas.spriteatlas");
        Debug.Log(Application.dataPath + "/Atlas/MyAtlas.spriteatlas");
        img.sprite = atlas.GetSprite("Fall1"); 
    }

总结

原来的n张图有n个DrawCall,使用图集后,使用同一图集中图片的UI,由于材质也相同,则只用1个DrawCall。

————————————————
版权声明:本文为CSDN博主「真鬼123」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/boyZhenGui/article/details/122846245

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值