Unity3D导出SpriteMode为Multiple时,里面的每一张精灵图片。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity3D导出SpriteMode为Multiple时,里面的每一张精灵图片。相关的知识,希望对你有一定的参考价值。

有时候,我们会需要把图集中的每一个精灵导出来。

技术分享

导出代码:

  [MenuItem("Tools/ExportSprite")]
    public static void ExportSprite()
    {
        // 拿到选中的资源
        Object[] selects = Selection.objects;

        // 
        string savePath = Application.dataPath + "/outSprite/";
        Directory.CreateDirectory(savePath);
        foreach (Object item in selects)
        {
            Sprite sprite = item as Sprite;
            if (sprite == null)
                continue;

            // 获取精灵的贴图
            Texture2D t = sprite.texture;

            // 创建一个新的贴图
            Texture2D newTex = new Texture2D((int)sprite.rect.width, (int)sprite.rect.height,  TextureFormat.ARGB32, false);
            // 设置像素点为 选择贴图的像素点
            newTex.SetPixels(t.GetPixels((int)sprite.rect.xMin, (int)sprite.rect.yMin, (int)sprite.rect.width, (int)sprite.rect.height));
            
            newTex.Apply();

            // 把创建的贴图对象,转换为bytes
            byte[] buffer = newTex.EncodeToPNG();
            // 写出
            File.WriteAllBytes(savePath + sprite.name + ".png", buffer);
        }
    }

使用:

选中你要导出的精灵,点击头部菜单 Tools > ExportSprite 然后导出的精灵会放到 Project 下的 outSprite 目录中。

以上是关于Unity3D导出SpriteMode为Multiple时,里面的每一张精灵图片。的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Unity3d 预制文件批量导出为 FBX 格式?

通过3dmax将max文件导出为unity3d可用的带贴图的fbx文件

如何将模型从Blender导出到Unity3d

Unity3D序列帧动画制作方法---实现加载进度条

blender 和unity3D的一个问题

unity3d导出到IOS程序下 集成unity3dAR功能