【Unity】 图集Sprite Atlas使用讲解

为什么使用图集?

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

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

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

【Unity】 图集Sprite Atlas使用讲解_第1张图片

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

【Unity】 图集Sprite Atlas使用讲解_第2张图片

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

【Unity】 图集Sprite Atlas使用讲解_第3张图片

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

【Unity】 图集Sprite Atlas使用讲解_第4张图片

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

【Unity】 图集Sprite Atlas使用讲解_第5张图片

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

【Unity】 图集Sprite Atlas使用讲解_第6张图片

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

【Unity】 图集Sprite Atlas使用讲解_第7张图片

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

【Unity】 图集Sprite Atlas使用讲解_第8张图片

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

【Unity】 图集Sprite Atlas使用讲解_第9张图片

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

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

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

【Unity】 图集Sprite Atlas使用讲解_第10张图片

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");
        
    }

你可能感兴趣的:(Unity,程序设计,unity,游戏引擎)