首先 下载一个DLL文件,名字:System.Windows.Forms。

然后把这个文件放在资源目录,位置随便。

接着上代码 :

using System.IO;
using UnityEditor;
using UnityEngine;
using System.Windows.Forms; public class SpriteToPrefabs : MonoBehaviour
{ static private string OpenPath()//选择路径
{
string path = null;
FolderBrowserDialog dialog = new FolderBrowserDialog();
dialog.Description = "选择转换的文件";
if (dialog.ShowDialog() == DialogResult.OK)
{
if (dialog.SelectedPath == "")
{
print("你没有选择任何内容");
}
else
{
DirectoryInfo wenjianjia = new DirectoryInfo(dialog.SelectedPath);
path = dialog.SelectedPath.Replace("\\", "/"); }
}
return path;
}
static private string SavePath()
{
string path = null;
FolderBrowserDialog dialog = new FolderBrowserDialog();
dialog.Description = "文件保存的目录";
if (dialog.ShowDialog() == DialogResult.OK)
{
if (dialog.SelectedPath == "")
{
print("你没有选择任何内容");
}
else
{
DirectoryInfo wenjianjia = new DirectoryInfo(dialog.SelectedPath);
path = dialog.SelectedPath.Replace("\\", "/"); }
}
return path;
} [UnityEditor.MenuItem("MyMenu/AtlasMaker")]//转换格式
static private void MakeAtlas()
{
DirectoryInfo rootDirInfo = new DirectoryInfo(OpenPath());
string spriteDir = SavePath(); if (!Directory.Exists(spriteDir))
{
Directory.CreateDirectory(spriteDir);
}
foreach (DirectoryInfo dirInfo in rootDirInfo.GetDirectories())
{
foreach (FileInfo pngFile in dirInfo.GetFiles("*.png", SearchOption.AllDirectories))
{
string allPath = pngFile.FullName;
string assetPath = allPath.Substring(allPath.IndexOf("Assets"));
//Sprite sprite = Resources.LoadAssetAtPath<Sprite>(assetPath);
Sprite sprite = AssetDatabase.LoadAssetAtPath<Sprite>(assetPath);
GameObject go = new GameObject(sprite.name);
go.AddComponent<SpriteRenderer>().sprite = sprite;
allPath = spriteDir + "/" + sprite.name + ".prefab";
string prefabPath = allPath.Substring(allPath.IndexOf("Assets"));
PrefabUtility.CreatePrefab(prefabPath, go);
GameObject.DestroyImmediate(go);
}
}
Debug.Log("done");
} }

然后unity会多出一个栏“MyMenu”

点进去会一个“AtlasMaker”按钮

点击后出现一个选择文件路径栏

选好路径第二次弹出就是要保存的预制Prefabs的路径!然后系统会自动转换,转换好的会出现done!

至于这么做比打图集有什么优势这里不作说明!这还能扩展自动打包AB包功能!很好用!这个DLL文件百度很容易找到!

一个挺好用的自己写的小插件(用与把一般的图片转换成预制)——UNITY3D的更多相关文章

  1. Mysql一个非常有用的内置函数今天碰到要把MySQL数据库中的varchar转换成date类型进

    Mysql一个非常有用的内置函数 今天碰到要把MySQL数据库中的varchar转换成date类型进行时间的比较和查询.在网上找了找,发现MySQL也跟其他数据库一样有自己内置的转换函数:str_to ...

  2. 打造一个自动检测页面是否存在XSS的小插件

    前言: 还记得刚玩Web安全时,就想着要是能有一个自动挖掘XSS漏洞的软件就好了.然后我发现了Safe3.JSky.AWVS.Netsparker等等,但是误报太多,而且特别占内存.后来发现了fidd ...

  3. 第一个Python小项目:图片转换成字符图片

    实现的效果:                                                                                               ...

  4. 分享:计算机图形学期末作业!!利用WebGL的第三方库three.js写一个简单的网页版“我的世界小游戏”

    这几天一直在忙着期末考试,所以一直没有更新我的博客,今天刚把我的期末作业完成了,心情澎湃,所以晚上不管怎么样,我也要写一篇博客纪念一下我上课都没有听,还是通过强大的度娘完成了我的作业的经历.(当然作业 ...

  5. 瞧一瞧,看一看呐,用MVC+EF快速弄出一个CRUD,一行代码都不用写,真的一行代码都不用写!!!!

    瞧一瞧,看一看呐用MVC+EF快速弄出一个CRUD,一行代码都不用写,真的一行代码都不用写!!!! 现在要写的呢就是,用MVC和EF弄出一个CRUD四个页面和一个列表页面的一个快速DEMO,当然是在不 ...

  6. 将目录下面所有的 .cs 文件合并到一个 code.cs 文件中,写著作权复制代码时的必备良药

    将目录下面所有的 .cs 文件合并到一个 code.cs 文件中,写著作权复制代码时的必备良药 @echo off echo 将该目录下所有.cs文件的内容合并到一个 code.cs 文件中! pau ...

  7. 在Android 下写一个检测软件版本号 以自动升级APP 的插件

    直接上图上代码: 1.插件类的编写 工程目录结构图: 代码如下: package org.apache.cordova.versionupdate; import org.apache.cordova ...

  8. python3 - 写一个生成双色球号码的一个程序,生成的号码写到文件里面

    写一个生成双色球号码的一个程序,生成的号码写到文件里面 # 中奖号码由6个红色球号码和1个蓝色球号码组成 # 篮球范围:01-16 # 红球范围:01-33 def swq(num): random. ...

  9. sql server 关于表中只增标识问题 C# 实现自动化打开和关闭可执行文件(或 关闭停止与系统交互的可执行文件) ajaxfileupload插件上传图片功能,用MVC和aspx做后台各写了一个案例 将小写阿拉伯数字转换成大写的汉字, C# WinForm 中英文实现, 国际化实现的简单方法 ASP.NET Core 2 学习笔记(六)ASP.NET Core 2 学习笔记(三)

    sql server 关于表中只增标识问题   由于我们系统时间用的过长,数据量大,设计是采用自增ID 我们插入数据的时候把ID也写进去,我们可以采用 关闭和开启自增标识 没有关闭的时候 ,提示一下错 ...

随机推荐

  1. Tuxera ntfs软件如何删除干净

    sudo /Library/Filesystems/fusefs_txantfs.fs/Contents/Resources/Support/uninstall-package.sh

  2. JS的第七种语言类型--symbol

    今天浏览网页的时候发现,JS中有七种语言类型.我的内心???百度一下哪里来的第七种!! 好吧跟着来回顾一下JS的前6种undefined null boolean string numver obje ...

  3. Java虚拟机系列(四)---查看GC日志

    这一节穿插一点如何在eclipse中配置并查看某个Java应用GC日志的知识点,我也是通过调研知道的,因为书中写的不是很详细,主要是为下一节做准备. 一.eclipse中配置GC 在eclipse中如 ...

  4. Java程序员面试题收集(2)

    1 String = 与 new 的不同 使用“=”赋值不一定每次都创建一个新的字符串,而是从“字符串实例池”中查找字符串.使用“new”进行赋值,则每次都创建一个新的字符串.  2 String与S ...

  5. Gradle:gradle下载插件

    https://github.com/michel-kraemer/gradle-download-task 用法在readme中已经讲的很清楚了,我主要介绍下注意事项吧. 我用这个插件的目的是为了让 ...

  6. Bootstrap启动(关闭)轮播

    $('.carousel').carousel(); //启动轮播 $('.carousel').carousel(‘pause’); //关闭轮播 $(‘.carousel’).carousel({ ...

  7. sqlserver 2008 R2 安装教程(心得记录)

    在这里简单的记录下自己安装sqlserver的过程吧(本人以前安装失败过,然后卸载了,就一直没用,现在由于工具原因,重新安装,过程相对第一次安装会复杂点) 1.首先,把以前安装的注册表的对应c盘的文件 ...

  8. 哈哈哈哈,我竟然发现了个MSDN里面的笔误

    typedef __PROCESSOR_INFO {  WORD wVersion;   WCHAR szProcessorCore[40];  WORD wCoreRevision;  WCHAR ...

  9. 2019.8.14 NOIP模拟测试21 反思总结

    模拟测试20的还没改完先咕着 各种细节问题=错失190pts T1大约三分钟搞出了式子,迅速码完,T2写了一半的时候怕最后被卡评测滚去交了,然后右端点没有初始化为n…但是这样还有80pts,而我后来还 ...

  10. day36 04-Hibernate检索方式:多表连接查询

    返回的是一个List集合,这个List集合的泛型是一个Object数组.最后会拿到一个里面放Object数组的List集合. HQL内连接查询,发出SQL语句查询出来的结果集被Hibernate封装成 ...