UnityEditor动态生成图集SpriteAtlas,并包含文件夹图片

UnityEditor动态生成图集SpriteAtlas,并包含文件夹图片

//首先读取json 
[MenuItem("工具/创建Atlas")]
static void AtlasCreate()
{
        string rpath = "Assets/AssetAll/ps";
        DirectoryInfo direction = new DirectoryInfo(rpath);
        DirectoryInfo[] directs = direction.GetDirectories();//文件夹
        DirectoryInfo dir;
        int i, j;
        for (i = 0; i < directs.Length; i++)
        {
            dir = directs[i];
            string dataPath = dir.FullName;= System.IO.Path.GetFullPath(".");

            //创建图集
            string atlas = dataPath + "\\" + dir.Name + ".spriteatlas";
            if (File.Exists(atlas))
            {
                Debug.Log("图集找到" + atlas);
            }
            else
            {
                SpriteAtlas sa = new SpriteAtlas();
                
                SpriteAtlasPackingSettings packSet = new SpriteAtlasPackingSettings()
                {
                    blockOffset = 1,
                    enableRotation = false,
                    enableTightPacking = false,
                    padding = 4,
                };
                sa.SetPackingSettings(packSet);

                
                SpriteAtlasTextureSettings textureSet = new SpriteAtlasTextureSettings()
                {
                    readable = true,
                    generateMipMaps = false,
                    sRGB = true,
                    filterMode = FilterMode.Bilinear,
                };
                sa.SetTextureSettings(textureSet);
                
                atlas = rpath + "/" + dir.Name + "/" + dir.Name + ".spriteatlas";
                AssetDatabase.CreateAsset(sa, atlas);
                //图片的文件夹加入图集。
                Object texture = AssetDatabase.LoadMainAssetAtPath(rpath + "/" + dir.Name);
                SpriteAtlasExtensions.Add(sa, new Object[] { texture });
                
                AssetDatabase.SaveAssets();
                Debug.Log("图集创建:" + atlas);
				//设置预设名称
                AssetImporter atlasAssetImporter = AssetImporter.GetAtPath(atlas);  //得到Asset
                atlasAssetImporter.assetBundleName = dir.Name;
                atlasAssetImporter.assetBundleVariant = "ps";
            }
        }
}
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值