zoukankan      html  css  js  c++  java
  • 【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 目录中。

  • 相关阅读:
    本周总结
    本周总结
    第四周自我总结
    结对编程
    第四周自我总结
    第三周自我总结
    本周工作安排及内容
    知识思考
    交作业。。。
    MSF过程模型
  • 原文地址:https://www.cnblogs.com/jiuxuan/p/7282215.html
Copyright © 2011-2022 走看看