智慧 + 毅力 = 无所不能

正确性、健壮性、可靠性、效率、易用性、可读性、可复用性、兼容性、可移植性...
posts - 991, comments - 26, trackbacks - 0, articles - 0

导航

  情景描述:最近在做Unity的网络底层,用VS编写源码,MonoDevelop用来Debug,在Flash Builder上搭建的Python做协议生成器,期间有无数次Unity莫名奇妙的的down掉了,然后仔细分析了一下:

1、unity会爆出错误:

  There are inconsistent line endings in the 'Assets/...cs' script. Some are Mac OS X (UNIX) and some are Windows.

  This might lead to incorrect line numbers in stacktraces and compiler errors. Unitron and other text editors can fix this using Convert Line Endings menu commands.

2、monoDevelop在保存更改时也会报出编码错误:

  The file "E:\BillGameframe\unity\...Netmanager\Netmanager.cs" has line endings which differ from the policy settings.
  Do you want to convert the line endings?

  

3、然后用Notepad++的“显示所有字符” 查看文件,发现VS保存的文件每行以‘CRLF’结尾(window平台文件),而MonoDevelop保存的是‘LF’结尾(Unix平台)

4、然后用Unity新建c#文件,发现为‘LF’结尾(Unix平台)

  解决方案:

1、将unity新建文件改为‘CRLF’

  将:C:\Program Files\Unity\Editor\Data\Resources\ScriptTemplates\下4个unity新建文件的模板改为‘CRLF’,

  修改方法:用VS打开,在文件-高级保存选项-行尾 选择window(CRLF);

  

2、修改MonoDevelop环境编码:

  修改方法:Project-Solution Option-Source Code-Code Formatting- 下3个文件格式的Line endings都改为Windows