Unity3D引擎交流QQ群:【21568554】
看了雨松大大的这篇文章:
Unity3D研究院之Mac&Windows文件写入结尾不一样
个人想能不能一劳永逸呢?
答案是肯定的!
工具下载地址:http://pan.baidu.com/s/1pJJRcmv
自己结合以前项目里有位大神写的一个转换编码的代码,写了个Dll,完美解决了编码不一致的问题、
本DLL支持.TXT、CS、 JS、 boo、但是不支持shader脚本,
因为内置shader编译器暂不支持带签名的UTF8脚本!
并且对于由于Unity3D默认在编辑器创建的脚本VS和U3D会包警告行尾不一样问题也完美了解决了。
如下是报 行尾不一致的警告 脚本多了看着很乱很烦人。
unity:
vs:
关于行尾不一致原因简单解释下:这是由Windows和Unix不同的标准引起的,即“回车”和“换行”的问题。“回车”和“换行”是ASCII字符集中两个不可
见的控制符。“回车”就是CHAR(13),即\r;“换行”就是CHAR(10),即\n。至于“回车”和“换行”是
来源于打字机,没见过打字机或没见过DOS时代的光标恐怕不好理解,因为GUI时代光标都是自由移动的不
再有回车的意义。
在Unix中“回车”不换行,“换行”才换行,行尾只需要一个“换行”,而在Windows中,“回车
”和“换行”都换行,“回车”+“换行”才是行尾,所以符合Windows开发标准的文本编辑器才会提醒你
当前编辑的文本不符合Windows行尾标准。
好问题原因我们了解了,
下面我教大家如何使用我写的DLL和批处理解决行尾不一致问题!
首先我们新建个文件夹叫Editor把DLL导入到Unity,当然这个Editor最好是在根目录下如果已有请直接把DLL放在里面,
那么你想问我就不放在Editor文件夹下会如何,那么我告诉你在“No Zuo No Die”!原因很简单你打包的时候会报错,
因为引用了UnityEditor命名空间,而UnityEditor.DLL是.net3.5创建的而Unity打包的时候会报错。所以你放在Editor文件夹下就没事了。
废话不多说了 我们操作把:
我们已经导入了然后我们会在编辑器的菜单栏看到这样的选项,
看到这个我就不用多介绍了把 如果想把Assets文件夹下的脚本全部转换成UTF-8的就点击第一个,
如果只想转换选中的那就选择第二个。
我们新建个TXT在TXT里随便写几个字母,
放在工程里把TXT的编码格式改成ANSI的。
然后我们选择转换编码格式。
我们在打开TXT文件就会发现编码格式以及变成UTF-8了。
我们成功了,这个小工具的局限性就是如果你TXT或者脚本一个字符都没有是不起作用的
不过我想没人会把一个字符都没写的文本放在工程里用把,没意义的事情。
好,我们接下来去解决因为MAC和WINDOWS共同开发和因为本身Unity生成类模版Txt文件行尾签名问题而报讨厌的警告的问题,
那么好,我们把我这个工具解压放在和Unity工程Assets同级的目录下
这个工具是别人写的我只是写了个批处理去处理脚本的行尾,
我们进入Dos2Unix目录,
运行unix2dos.bat 静静等待处理完成!
好我们在打开Unity会发现讨厌的警告已经消失了,不信你可以把工程下的Library文件夹删除后
Unity会重新导入脚本资源等,我们会看见再也不会有这个警告了,
记得把代码上传到SVN哦!
等他人在SVN上传新脚本如果在发现有警告了就运行一次就好了。
谢谢大家看到底。0.0 共同进步吧!