Unity3D脚本行尾(Line Endings)
行尾不一致(inconsistent line endings )
开发环境
有时候编辑Unity的脚本文件,代码diff之后,或者从svn更新文件之后,Unity中会出现行尾不一致的信息。
我的开发环境如下:
visual studio 2015,unity3d 5.x,beyond compare 4,notepad++ 6.x
windows 7/10
行尾不一致
当Unity在编译时,如果脚本的行尾不一致,会出现以下提示信息:
There are inconsistent line endings in the 'someFileName.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.
产生原因
这是由Windows和Unix不同的标准引起的,即“回车”和“换行”的问题。“回车”和“换行”是ASCII
字符集中两个不可见的控制符。“回车”就是CHAR(13),即\r;“换行”就是CHAR(10),即\n。至于“回
车”和“换行”是来源于打字机,没见过打字机或没见过DOS时代的光标恐怕不好理解,因为GUI时代光
标都是自由移动的不再有回车的意义。
在Unix中“回车”不换行,“换行”才换行,行尾只需要一个“换行”,而在Windows中,“回 车”和“换
行”都换行,“回车”+“换行”才是行尾,所以符合Windows开发标准的文本编辑器才会提醒你当前编辑
的文本不符合Windows行尾标准。
Unix和Windows行尾
Unix平台: 行尾'LF'
Windows平台: 行尾‘CRLF’
CR回车(\r) LF换行(\n) Windows/Dos CRLF \r\n
Linux/Unix LF \n
MacOS CR \r
解决办法
unity中创建的新脚本的默认行尾是LF,而visual studio中创建的新文件中默认行尾为CRLF,需要统一文件的行尾
统一为LF(Unix)
Visual Studio插件:Strip'em Add-in for Visual Studio
官网:http://www.grebulon.com/software/stripem.php
这个插件当你在Visual Studio中保存文本时自动转换文件的格式,对你在Windows和Unix环境中混合工作时非常有用的。
在Unix中,文本文件的行结束是换行字符,在Windows中——一个回车和换行。
这个插件确保文件将被保存你所希望的方式。
它支持行尾(EOL)转换到Unix,Windows或旧的Mac约定。
统一为CRLF(Windwos)
- 打开Unity安装目录(*C:\Program Files\Unity\Editor\Data\Resources\ScriptTemplates*)
- 找到Unity新建文件的模板文件(xx.txt),有规律的txt文件
- 用visual studio 打开这些文件,在文件 - 高级保存选项 - 行尾 选择 window(CRLF)
以Unity 5.3.5为例,新建文件的模板文件如下:
- 81-C# Script-NewBehaviourScript.cs.txt
- 83-Editor Test C# Script-NewEditorTest.cs.txt
- 86-C# Script-NewStateMachineBehaviourScript.cs.txt
- 86-C# Script-NewSubStateMachineBehaviourScript.cs.txt
- 83-Shader__Standard Surface Shader-NewSurfaceShader.shader.txt
- 84-Shader__Unlit Shader-NewUnlitShader.shader.txt
- 90-Shader__Compute Shader-NewComputeShader.compute.txt
- 82-Javascript-NewBehaviourScript.js.txt
- 85-Shader__Image Effect Shader-NewImageEffectShader.shader.txt
参考资料
https://www.reddit.com/r/Unity3D/comments/3dl8oz/psa_how_to_fix_line_endings_in_unity_for_windows/
http://forum.unity3d.com/threads/inconsistent-line-endings.40671/
http://www.cnblogs.com/sevenyuan/archive/2012/12/06/2805114.html
最新文章
- iOScollectionView广告无限滚动(Swift实现)
- UVA 10791 Minimum Sum LCM(分解质因数)
- 构造函数this和base的区别
- K-Means 聚类算法原理分析与代码实现
- Windows下利用虚拟机运行FSL 安装和配置
- js继承的概念
- 菜鸟-手把手教你把Acegi应用到实际项目中(1.2)
- 关于 终端 ls 命令 不能区分文件和目录的问题
- JS之正则表达式验证URL
- Android 高手进阶,自己定义圆形进度条
- 捕鱼达人代码例子下载地址 mac版
- 这可能是最low的发布dotnet core站点到centos7
- C#中Fun简单介绍及运用到项目中与缓存(本地缓存,Redis)结合使用
- Tensorflow笔记二
- java使用StringBuilder的方法反转字符串输出
- jquery-2.0.3 源码分析 整体架构
- IDEA jrebet插件安装
- 女性睾酮水平高(High Testosterone Levels in Women)
- 利用adb 打开手机应用程序
- WIN32控件使用系统样式