利用插件保存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
- 利用插件保存unity3D切割过的sprite文件
- Unity教程之-Unity3d中Sprite(精灵)的切割和导出
- Unity3D 5.4.1 获取2D Sprite切割后的图
- Unity3d 破碎、切割模型插件
- Unity导出切割后的Sprite图片
- 切割Box2D对象之三:切割自定义的sprite
- unity3d插件Daikon Forge GUI 中文教程-3-基础控件Button和Sprite的使用
- Unity3D AssetStore下载的文件保存位置
- Unity3d保存动态下载的文件
- Unity3D AssetStore下载的文件保存位置
- unity3d 更换sprite renderer中sprite的图片
- unity3d 更换sprite renderer中sprite的图片
- unity sprite怎么获取切割后的图
- Unity3D 2D动画插件EasyMotion2D (之三)Sprite
- Unity3D 2D动画插件EasyMotion2D (之四)Sprite Editor
- Unity3D 2D动画插件EasyMotion2D (之五)Sprite Splitter
- Unity3d的Sprite Packer用法介绍
- Unity3d的Sprite Packer用法介绍
- 本地windows跑Python程序调用Spark
- android llvm-o混淆
- 数据结构--树的基本概念
- TensorFlow的reshape操作 tf.reshape
- win10+cuda8.0+cudnn+Tensorflow(GPU)安装
- 利用插件保存unity3D切割过的sprite文件
- 5G 网络构架解读
- Sqlserver2008及以上使用全文索引排除干扰词
- 【Scikit-Learn 中文文档】内核岭回归
- JAVA 第7次作业
- mips架构linux启动分析(五)(bootmem和blockmem机制的初始化)(prom_init_numa_memory)
- 11月20日云栖精选夜读:围观阿里总部:边喝茶边搞技术是一种怎样的体验?
- Java基础——Java NIO详解(一)
- 我只是想要8个积分 为什么那么难