图集的意义
使用图集可以说是多加了一个步骤 但是这个步骤不是没有意义的
他可以有效的减少drawcall的数量,
多张图片需要多个drawcall,而如果我们合成一个大图 只需要一个drawcall
并且可以减少内存的开销
图集的使用
然后就到了图集的使用上了
首先创建一个图集
然后我们将想要设置的文件夹或者是文件 赋值上去
这里可能会产生报错 如果报错 我们需要设置一下
这样报错就消失了 按钮也可以点击了
然后就要通过代码来给我们想要设置的赋值了
public static Sprite GetAtlasSprite(string AtlasName,string SpriteName)
{
SpriteAtlas atlas = Resources.Load<SpriteAtlas>(AtlasName);
if (atlas == null)
{
Debug.LogError("图集:" + AtlasName + "不存在,请检查!");
}
if (atlas.GetSprite(SpriteName))
{
Debug.LogError(AtlasName+" 图集中sprite" + SpriteName + "不存在,请检查!");
}
return atlas.GetSprite(SpriteName);
}
上边我写了一个万能的方法 然后我们就可以使用了
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class TestAtlas : MonoBehaviour
{
private Image _image;
private void Awake()
{
_image = transform.GetComponent<Image>();
}
private void Start()
{
_image.sprite = GetSprite.GetAtlasSprite("Test", "10-Victory-2");
}
}
使用的前提是这个图集放于Resources文件夹中
如果出现读取图片的时候 我们发现把相邻图片的边边角角包括进来了
只需要将图集的Tight Packing取消勾选即可
以上就是这篇博文所有的内容 希望对大家有所帮助