SpriteAtlas
SpriteAtlas 是Unity2017新增得UGUI图集工具,与之前版本的图集工具SpritePacker对比,参考上一篇文章:
https://blog.csdn.net/u014794120/article/details/100126439
上篇文章提供了两种图集打包方式的优缺点,以及UGUI在使用过程中DrawCall问题的优化,本篇主要提供SpriteAtlas打包批处理工具的分享。
AtlasAutoPacker
AtlasAutoPacker,提供了四个基础图集打包的规则:
- 根据路径配置,自动批处理打包
- 选中路径下所有Sprite资源打包(包含子文件夹),逐个添加方式
- 选中路径下所有Sprite资源打包(不包含子文件夹),逐个添加方式
- 完全打包一个Folder,添加整个Folder
支持图集压缩格式Format、Compressor Quality、默认设置
支持SpriteAtlas ImportSetiing选项设置,Include In Build、AllowRotation,Tight Packing,Pading、ReadWrite Enable……
Code
代码如下:
using System.IO;
using UnityEditor;
using UnityEditor.U2D;
using UnityEngine;
using UnityEngine.U2D;
using System.Collections.Generic;
public class AtlasAutoPacker : Editor
{
/// <summary>
/// 打包图集类型
/// </summary>
public enum PackType
{
DeepAssets = 0, //指定路径下所有Sprite资源,包含子文件夹
Assets = 1, //指定路径下所有Sprite资源,不包含子文件夹
Folder = 2, //打包一个Folder
}
private static string _atlasPath = "Assets/Resources/GameAssets/Logic/UISpriteAtlases/";
private static string _extention = ".spriteatlas";
private static string _texturePath = "Assets/Resources/GameAssets/UI/New Resources/dabao/";
/// <summary>
/// 生成图集操作基础路径
/// 这些路径下的所有子文件夹,除白名单外,一个Fold生成一个图集
/// </summary>
private static List<string> _texturePathes = new List<string>() {
"Assets/Resources/GameAssets/UI/XXX/",
};
/// <summary>
/// 每个基础路径下,个别文件夹不能自动打包图集
/// 这些路径下资源不自动打包图集(都是大图、或者小图大图未分类、或者文件夹下有细分的AB规则、只有一张图打了反而浪费)
/// 需要手动处理打包
/// </summary>
private static Dictionary<string, List<string>> whiteDic = new Dictionary<string, List<string>>()
{
{"Assets/Resources/GameAssets/UI/New Resource