UITextureAtlas CreateMyAtlas(string AtlasName, Material BaseMat, string[] sPritesNames)
{
var size = 1024;
Texture2D atlasTex = new Texture2D(size, size, TextureFormat.ARGB32, false);
Texture2D[] textures = new Texture2D[sPritesNames.Length];
Rect[] rects = new Rect[sPritesNames.Length];
for(int i = 0; i < sPritesNames.Length; i++)
{
textures[i] = ResourceLoader.loadTexture(0, 0, sPritesNames[i] + ".png");
}
rects = atlasTex.PackTextures(textures, 2, size);
UITextureAtlas atlas = ScriptableObject.CreateInstance<UITextureAtlas>();
Material material = Material.Instantiate(BaseMat);
material.mainTexture = atlasTex;
atlas.material = material;
atlas.name = AtlasName;
for (int i = 0; i < sPritesNames.Length; i++)
{
var spriteInfo = new UITextureAtlas.SpriteInfo()
{
name = sPritesNames[i],
texture = atlasTex,
region = rects[i]
};
atlas.AddSprite(spriteInfo);
}
return atlas;
}