完美解决Unity3D(Mono和Vs)编码不一致以及行尾不一致问题!

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 共同进步吧!







  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值