前段时间写了一篇名叫《Unity使用Windows弹窗保存图片》的文章

然而现在项目进入了测试阶段

就在发布的时候,这个地方出问题了

问题出在using UnityEditor;

如上文章介绍,我们使用了SaveFilePanel这个API来获取用户选择的地址

而这个API属于EditorUtility类,而这个类又隶属于UnityEditor这个命名空间

然而要使用这个命名空间,就必须引入using UnityEditor;

但是此命名空间是Unity在编辑器模式下才可以使用的库

也就是说,打包时使用UnityEditor的脚本是会报错的

(好歹还报个错,告诉了你死是在哪儿死的)

这就陷入了两难的境地,

API必须要用,库决不能引入

查了好多资料后,才找到了一个解决方案

如下:

首先,删掉using UnityEditor库

然后引入using System.Windows.Forms;

引入此库,需要在Asset/Plugin文件夹下放入名为System.Windows.Forms.dll的文件

此文件可在Unity的安装目录中查找,然后复制到Plugin文件夹下

具体目录为:…\Editor\Data\Mono\lib\mono\2.0\System.Windows.Forms.dll

接下来,就可以在脚本中成功引入using System.Window.Forms库

然后换一种获取用户选择的路径的方式

string path = string.Empty;
FolderBrowserDialog dialog = new FolderBrowserDialog();
dialog.Description = "请选择想要保存的路径";
if (dialog.ShowDialog() == DialogResult.OK)
{
path = dialog.SelectedPath;
}

此方法便将用户选择的路径保存在了path中

然后使用File.WriteAllBytes就可以搞定了

if (path.Length != )
{
if (bytes != null)
{
File.WriteAllBytes(path + "/" + time + ".png", bytes);
}
}

效果图如下:

PS:这个对话框好丑,可毕竟是Unity提供的dll文件,跪着也要用吧。。

使用了UnityEditor中的API,打包时却不能打包UnityEditor的问题的更多相关文章

  1. MAVEN打包时没有将src/main/cache文件夹打到到WAR包中

    某项目中ehcache配置文件写在src/main/cache中,结果用maven打包时,得到的WAR包里面没有这个文件夹 因为maven打包时默认只打包src/main/java中的文件和src/m ...

  2. 转发:maven打包时始终出现以下提示:-source 1.3 中不支持泛型(请使用 -source 5 或更高版本以启用泛型)

    maven打包时始终出现以下提示: 1.-source 1.3 中不支持泛型(请使用 -source 5 或更高版本以启用泛型)List<User> userList= new Array ...

  3. 关于android源码中的APP编译时引用隐藏的API出现的问题

    今天在编译android源码中的计算器APP时发现,竟然无法使用系统隐藏的API,比如android.os.ServiceManager中的API,引用这个类时提示错误,记忆中在android源码中的 ...

  4. idea中 maven打包时时报错User setting file does not exist C:\Users\lenevo\.m2\setting.xml,

    第一种错误 :idea中 maven打包时时报错User setting file does not exist C:\Users\lenevo\.m2\setting.xml, 解决方案如下:将ma ...

  5. maven 打包时动态替换properties资源文件中的配置值

    pom build节点下面添加resource配置: <resources> <resource> <directory>src/main/resources/&l ...

  6. 记录一次maven打包时将test目录下的类打包到jar中,Maven Assembly Plugin的使用

    今天有人问我打包后找不到主类,运行的类写在test中.按照常规,test目录下的文件不会打包到jar包中.(但是我测试一个springboot工程就可以,这里之后再研究) 具体解决如下 第一步:在po ...

  7. maven打包时无法识别lombok中@Data生成的get set方法

    开发中使用了lombok,在使用maven编译打包时发现识别不了lombok通过注解@Data在实体类中生成的get,set方法.通过在网上的一篇博客找到了解决的办法,将maven-compiler- ...

  8. maven中把依赖的JAR包一起打包

    <buizld> <plugins> <plugin> <artifactId>maven-assembly-plugin</artifactId ...

  9. 利用Maven打包时,如何包含更多的资源文件

    首先,来看下MAVENx项目标准的目录结构: 一般情况下,我们用到的资源文件(各种xml,properites,xsd文件等)都放在src/main/resources下面,利用maven打包时,ma ...

随机推荐

  1. 极客君教你破解隔壁妹子的wifi密码,成功率高达90%

    首先,给大家推荐一个我自己维护的网站: 开发者网址导航:http://www.dev666.com/ 破解wifi密码听起来很复杂,实际上也不是非常的复杂,极客君(微信公众帐号:极客峰)今天教大家如何 ...

  2. (转)centos6.5安装VNC

    在Linux下用VNC远程桌面是个很不错的玩意.但在CentOS中默认没有安装VNC的.可以用下面语句查询,如果出现下面情况说明没有安装vnc #rpm -q tigervnc tigervnc-se ...

  3. Linux 和 Windows 下实现多进程的方式以及管道操作

    一.多进程 1.windows 多进程 使用 #include<windows.h> 下面的 BOOL CreateProcess( LPCWSTR pszImageName, LPCWS ...

  4. Servlet3.0新特性使用详解

    可插拔的Web框架 几乎所有基于Java的web框架都建立在servlet之上.现今大多数web框架要么通过servlet.要么通过Web.xml插入.利用标注(Annotation)来定义servl ...

  5. sql server 重命名列(字段)

    调用系统存储过程sp_rename,直接看代码: EXEC  sp_rename  'myTable.oldName','newName','COLUMN' 如果重命名表,则: EXEC  sp_re ...

  6. nosql使用感受

    最近一个项目尝试了使用ssdb(一个类似于redis的数据结构数据库),主要感受有几点: 优势 nosql的无模式在修改和插入时很方便,不需要预先新建表或者修改表结构来新加字段,只需要代码里面使用就行 ...

  7. 【Spring】BeanFactory解析bean详解

    在该文中来讲讲Spring框架中BeanFactory解析bean的过程,该文之前在小编原文中有发表过,要看原文的可以直接点击原文查看,先来看一个在Spring中一个基本的bean定义与使用. pac ...

  8. js全选checkbox框

    html: <input  type="checkbox" id="checkbox1" value="1" onclick=&quo ...

  9. linux XAMPP安装与使用

    linux安装 下载好后考至目录, chmod +x  接安装包 在执行 ./ 接安装包 启动 XAMPP /opt/lampp/lampp start 停止 XAMPP /opt/lampp/lam ...

  10. git常见操作和常见错误

    最近写了个博客demo,在上传至github时,居然报错了,刚开始学习代码上传,免不了遇到一些问题,报错信息如下: fatal: remote origin already exists. (致命错误 ...