行尾不一致(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)

  1. 打开Unity安装目录(*C:\Program Files\Unity\Editor\Data\Resources\ScriptTemplates*)
  2. 找到Unity新建文件的模板文件(xx.txt),有规律的txt文件
  3. 用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

最新文章

  1. iOScollectionView广告无限滚动(Swift实现)
  2. UVA 10791 Minimum Sum LCM(分解质因数)
  3. 构造函数this和base的区别
  4. K-Means 聚类算法原理分析与代码实现
  5. Windows下利用虚拟机运行FSL 安装和配置
  6. js继承的概念
  7. 菜鸟-手把手教你把Acegi应用到实际项目中(1.2)
  8. 关于 终端 ls 命令 不能区分文件和目录的问题
  9. JS之正则表达式验证URL
  10. Android 高手进阶,自己定义圆形进度条
  11. 捕鱼达人代码例子下载地址 mac版
  12. 这可能是最low的发布dotnet core站点到centos7
  13. C#中Fun简单介绍及运用到项目中与缓存(本地缓存,Redis)结合使用
  14. Tensorflow笔记二
  15. java使用StringBuilder的方法反转字符串输出
  16. jquery-2.0.3 源码分析 整体架构
  17. IDEA jrebet插件安装
  18. 女性睾酮水平高(High Testosterone Levels in Women)
  19. 利用adb 打开手机应用程序
  20. WIN32控件使用系统样式

热门文章

  1. log4Net(写入日志文件)
  2. php中return的用法实例分析
  3. E - The Values You Can Make
  4. Python学习基础知识概要
  5. 深入理解及应用Position
  6. 七牛--关于图片上传方向不统一的问题--主要关于图片EXIF信息中旋转参数Orientation的理解
  7. JQUERY 实现加入收藏夹功能
  8. js中查找相同的几种函数
  9. Activity详解四 activity四种加载模式
  10. Redis 键(key)相关的命令及其它命令的查看地址