Unity图集Sprite Atlas使用讲解

Unity图集使用教程与性能优化
本文介绍了在Unity游戏中使用SpriteAtlas技术来减少DrawCall数量和内存占用,通过合并小纹理到大图集,以及配置图集设置,提升性能并实现动态替换图片的示例。

为什么使用图集?

①减少DrawCall:在Unity中,通常渲染一个纹理会调用一次DrawCall。一个项目中包含大量的纹理,如果绘制每个纹理都调用一次DrawCall,这会占用过多的资源,从而影响整个游戏的性能。

②减少内存占用:比如你有一张宽高为90x90和一张宽高为9x9的图片,如果不合成大贴图,那么需要使用128x128和16x16的两张图片(分别是2的7次方和2的4次方)。但如果使用一张大图的话,可以把90x90和9x9的图片放到128x128的大图中,这样就用一张图片。

1.先选择3张图标,放入到同一文件夹Assets/Atlas/Main

在这里插入图片描述

2.然后建一个简单的UI,放入3个图标,此时没有打图集,Batches显示是4

在这里插入图片描述

3.打开Package Manager,导入2D Sprite

在这里插入图片描述

4.在Assets/Atlas/Main文件夹下,右击创建Sprite Atlas

在这里插入图片描述

5.文件夹下会多出一个文件Sprite Atlas文件

在这里插入图片描述

6.点击图集查看Inspector面板,提示图集功能关闭

在这里插入图片描述

7.点击提示,会自动弹开设置,自己根据需求设置打开状态

在这里插入图片描述

8.把整个文件夹拖进去,就可以对整个文件夹打图集,然后点击Pack Preview就可以预览图集

在这里插入图片描述

9.重要参数详解,只解释几个重要参数,因为这几个参数在实际游戏开发中,经常会出现问题。详细的可以点击下面官网连接

在这里插入图片描述

  • Include in Build:选中此复选框可在当前构建中包含精灵图集资源。默认情况下会启用此选项。
  • Allow Rotation:是否允许图片旋转,如果允许旋转,则可以最大限度提高组合后的纹理中的精灵密度。但是会导致某些图片旋转颠倒。默认开启,建议关闭!
  • Tight Packing:选中此复选框可根据精灵轮廓而非默认矩形轮廓来打包精灵。这样可以最大限度提高组合后的纹理中的精灵密度,并且默认情况下会启用此选项。但是会导致某些图片错位,建议关闭。

官方链接:
https://docs.unity3d.com/cn/current/Manual/class-SpriteAtlas.html

10.此时再看Batches已经变成2了

在这里插入图片描述

11.代码中,动态替换图片

	public Image img;
    void Start()
    {
        //加载图集,这里用了AssetDatabase加载,实际项目中根据自己的代码来加载
        string path = "assets/atlas/main/main.spriteatlas";
        Object asset = AssetDatabase.LoadAssetAtPath(path, typeof(SpriteAtlas));

        SpriteAtlas atlas = asset as SpriteAtlas;
        //替换图片
        img.sprite = atlas.GetSprite("icon_shop");
        
    }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值