利用插件保存unity3D切割过的sprite文件

来源:互联网 发布:数据库原理及应用答案 编辑:程序博客网 时间:2024/06/01 08:10

本文章中的效果基于Unity3D 5.6.2版本及VS 2015版本实现

插件的名字叫TestSaveSprite。在Unity3D中建立一个名为TestSaveSprite的脚本,内容如下。

using UnityEngine;using UnityEditor;public class TestSaveSprite{    [MenuItem("Tools/导出精灵")]    static void SaveSprite()    {        string resourcesPath = "Assets/Resources/";        foreach (Object obj in Selection.objects)        {            string selectionPath = AssetDatabase.GetAssetPath(obj);            // 必须最上级是"Assets/Resources/"            if (selectionPath.StartsWith(resourcesPath))            {                string selectionExt = System.IO.Path.GetExtension(selectionPath);                if (selectionExt.Length == 0)                {                    continue;                }                // 从路径"Assets/Resources/UI/testUI.png"得到路径"UI/testUI"                string loadPath = selectionPath.Remove(selectionPath.Length - selectionExt.Length);                loadPath = loadPath.Substring(resourcesPath.Length);                Debug.Log(loadPath);                // 加载此文件下的所有资源                Sprite[] sprites = Resources.LoadAll<Sprite>(loadPath);                if (sprites.Length > 0)                {                    // 创建导出文件夹                    string outPath = Application.dataPath + "/outSprite/" + loadPath;                    System.IO.Directory.CreateDirectory(outPath);                    foreach (Sprite sprite in sprites)                    {                        Debug.Log(sprite.name);                        // 创建单独的纹理                        Texture2D tex = new Texture2D((int)sprite.rect.width, (int)sprite.rect.height, sprite.texture.format, false);                        tex.SetPixels(sprite.texture.GetPixels((int)sprite.rect.xMin, (int)sprite.rect.yMin,                            (int)sprite.rect.width, (int)sprite.rect.height));                        tex.Apply();                        // 写入成PNG文件                        System.IO.File.WriteAllBytes(outPath + "/" + sprite.name + ".png", tex.EncodeToPNG());                    }                    Debug.Log("SaveSprite to " + outPath);                }            }        }        Debug.Log("SaveSprite Finished");    }}
创建完毕后,在Asset目录建立一个名为Editor(切记,不可拼错)的文件夹,把脚本放入该文件夹。你会看到菜单栏中多处一个Tool选项

接下来在Asset目录下创建一个Resources文件夹(切记,不可拼错),将你要编辑的图片到Resources文件夹或者其子文件夹下,更改下图中的属性。

最后,点击选中该文件,执行菜单栏Tool选项中的“导出精灵”。成功后,刷新一下Asset文件夹,你看到一个新创建的outSprite文件夹,导出后的文件会以PNG形式保存在里面。



阅读全文
0 0