切图需求

假设有一张大的UI的图集,我们想把它里面的小图一张一张地切割出来,如果有plist文件,请查阅我的另一篇文章《还原TexturePacker plist 文件 切开各小图片》

今天我们使用 Unity4.3或更高版本自带的 Sprite Editor 来导出切片精灵

切图效果

步骤

1、准备一张大的图集,导入Unity的Asset/Resources/XXX/文件夹下(注意:图集文件一定要放在Resources文件下)

2、该图集默认是Texture,我们需要把它的Type修改成Sprite

3、接着修改Sprite Mode为Multiple,应用。然后点击 Sprite Editor

4、在打开的Sprite Edirot 窗口中把图集切成多个Sprite

插件代码

5、编写TestExportSprite.cs,放在Editor目录下

using UnityEngine;
using UnityEditor;public class TestExportSprite
{[MenuItem("Assets/导出选中图片为单独png")]static void ExportSelSprite(){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;}// 得到导出路径string loadPath = selectionPath.Remove(selectionPath.Length - selectionExt.Length);loadPath = loadPath.Substring(resourcesPath.Length);// 加载此文件下的所有资源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){// 创建单独的纹理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(string.Format("Export {0} to {1}",loadPath,outPath));}}}Debug.Log("Export All Sprites Finished");}
}

5、使用Sprite Editor把图集切割成Sprite之后,修改图集的属性为Advanced,并勾选 Read/Write Enabled 和Transpare

否则当你导出切片时会报错

UnityException: Texture 'UIAtlas' is not readable, the texture memory can not be accessed from scripts. You can make the texture readable in the Texture Import Settings.
UnityEngine.Texture2D.GetPixels (Int32 x, Int32 y, Int32 blockWidth, Int32 blockHeight) (at C:/BuildAgent/work/aeedb04a1292f85a/artifacts/EditorGenerated/TextureBindings.cs:259)
TestSaveSprite.SaveSprite () (at Assets/Editor/TestSaveSprite.cs:39)

5、在Resources目录下选中UIAtlas.psd,右键,选择“导出选中图片为单独png

说明

部分内容参考自:http://blog.csdn.net/akof1314/article/details/38845933

转载于:https://www.cnblogs.com/zhaoqingqing/p/4020667.html

Sprite Editor 图集切片精灵相关推荐

  1. Unity 导出切片精灵

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 假设有一 ...

  2. Unity报错之 No Sprite Editor Window registered. Please download 2D Sprite package from Package Manager.

    Unity报错之 No Sprite Editor Window registered. Please download 2D Sprite package from Package Manager. ...

  3. coco2dx精灵和背景遮挡_Cocos2d-x精灵的性能优化——使用纹理图集和精灵帧缓存...

    使用纹理图集 纹理图集(Texture)也称为精灵表(Sprite Sheet) 使用纹理图集的优点: 1.减少文件读取次数,读取一张图片比读取一推小文件要快 2.减少OpenGL ES绘制调用并且加 ...

  4. unity使用Sprite Editor图片切割功能减少性能损耗

    在unity里利用Sprite Editor切割本图片为多张图片,让Batches和SetPass calls的值处于最小值,用以减少性能损耗. 上图可以见到,尽管图片有十多张,但是Batches和S ...

  5. UGUI sprite editor九宫切图用法

    UGUI九宫格纹理拉伸的使用,不论是游戏中的UI,还是应用中的UI,纹理九宫格拉伸都是必不可少的,因为采用这种拉伸方式,可以最大化的节省纹理资源,任意缩放图片还能保持一个不错的效果,因此在手游和app ...

  6. 前端css基础知识点之sprite——雪碧(精灵)

    前端css基础知识点之sprite--雪碧(精灵) css sprite css精灵或css雪碧 把网页中一些背景图片整合到一个大文件中,然后利用 background-image.backgroun ...

  7. 15、Cocos2dx 3.0游戏开发找小三之Sprite:每一个精灵都是上辈子折翼的天使

    重开发人员的劳动成果,转载的时候请务必注明出处:http://blog.csdn.net/haomengzhu/article/details/30475395 Sprite  Sprite 能够说是 ...

  8. Unity Editor 创建一个精灵

    创建一个2D项目 1.打开 unity Hub 2.点击新项目 3.选择2D模版,并修改项目名称 创建场景-Scene 1.点击左上角的File,选择New Scene, 快捷键:Ctrl + N 2 ...

  9. Unity制作简单的精灵图动画(新手向)

    使用精灵图制作动画步骤: 1.精灵图准备 2.制作动画 一.精灵图导入与切割 第一种情况:导入的是已经切割好的精灵图,请直接跳动到二 第二种情况:导入的是需要切割的精灵图,需要切割,切割步骤: 1按照 ...

  10. 【Unity 学习笔记】 Sprite的部分属性和功能

    声明:本人Unity菜鸟,该文章主要作为学习笔记使用 在unity2D中,每导入一个图片资源,unity都会为其添加一些属性,这些属性可以在对应图片资源的Inspector中查看.在unity中,图片 ...

最新文章

  1. python 跳出多重循环
  2. Jquery背景图片的预加载
  3. 2021算法竞赛入门班第八节课【数学】习题
  4. firefox 53支持java_Selenium 2.53不使用Firefox 47
  5. 小型数字系统---运动码表设计
  6. Oracle入门(十一)之SQL
  7. 计算机活动宣传稿,畅想科技,创造梦想 ——东华大学计算机科学与技术学院第十一届图灵科技文化节通讯稿...
  8. 0x123C语言,and esp, 0xfffffff0
  9. 【转】WEB前端调优
  10. 安装centos linux7,安装centos7
  11. 软件包的安装(源码安装)
  12. mysql触发器更新前触发_mysql触发器实例:更新前触发
  13. SAP BAPI 教程 – 在 ABAP 中创建 BAPI 的分步指南-020
  14. 微信小程序开发教程(0)-读《微习惯》到开发小程序
  15. 企业使用Windows Sysprep工具来封装Win10、Win11操作系统(最新最全)
  16. GDrive is here
  17. Failed to convert property value of type 'java.lang.String' to required type 'java.util.Date'
  18. PictureSelector 使用
  19. Linux(6)磁盘管理和文件系统
  20. 服务器防火墙软件 —— iptables

热门文章

  1. 牛客多校第六场G Is Today Friday?(吉姆拉尔森/蔡勒公式 + 思维)题解
  2. 在OpenGL中使用FreeImage库生成纹理
  3. 以太坊智能合约实现代币空投
  4. 04_数字的处理方法(保留小数点两位、将数字转化为千分位格式)
  5. python MySQLdb安装和使用
  6. 理解position与anchorPoint[转]
  7. Android学习Tabhost、gallery、listview、imageswitcher
  8. NYOJ——————数的长度(斯特林公式的应用)
  9. 逻辑斯蒂回归:家庭买私家车的概率
  10. 常用图表的用法-分布类