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

Unity3D脚本行尾(Line Endings)的更多相关文章

  1. 【实习记】2014-08-26都是回车惹的祸——shell脚本必须是unix行尾

        事情由起:svn的url在excel里,我复制到txt文本下,vi做些文本处理,只提取了url,保存为url.txt.再用vi处理url.txt,加上svn checkout等词,变成可以运行 ...

  2. There are inconsistent line endings in the 'xxx' script. Some are Mac OS X (UNIX) and some are Windows.问题解决

    在Window上使用Visual Studio编辑Unity3D脚本时常会出现类似如下警告: 警告 1 There are inconsistent line endings in the 'Asse ...

  3. [转]unity3d 脚本参考-技术文档

    unity3d 脚本参考-技术文档 核心提示:一.脚本概览这是一个关于Unity内部脚本如何工作的简单概览.Unity内部的脚本,是通过附加自定义脚本对象到游戏物体组成的.在脚本对象内部不同志的函数被 ...

  4. Unity3D脚本中文系列教程(七)

    http://dong2008hong.blog.163.com/blog/static/4696882720140311445677/?suggestedreading&wumii Unit ...

  5. Unity3D 命令行参数

    Unity3D 命令行参数 @by 广州小龙                                              unity ios开发群:63438968 Typically, ...

  6. unity 解决与永久解决行尾不一致报警

    虽然不影响使用,但一堆警告信息着实让人不爽,继续往下看. 用Notepad2的“查看->显示换行编码"查看发现通过Unity3D编辑器创建的脚本文件是以"LF"结尾 ...

  7. windows10下git报错warning: LF will be replaced by CRLF in readme.txt. The file will have its original line endings in your working directory.

    window10下使用git时 报错如下: $ git add readme.txtwarning: LF will be replaced by CRLF in readme.txt.The fil ...

  8. 去掉行尾的^M

    1. 处理掉行尾的^M 在windos下进行linux内核驱动编写,调试成功后需要集成到内核代码中去,所以会通过虚拟机共享文件夹拷贝到内核对应目录,这时候看源码文件还是没有异常的. 当对该文件进行回车 ...

  9. linux向文件中添加数据,数据被追加到了上一行的行尾

    当我们在windows上新建了文件,并且要上传到linux上时,一定要在文件后加上空格,否则就会出现标题上讲的,数据被追加到了上一行的行尾,而不是新起一行,但是如果是在linux上新建的文件,则没有这 ...

随机推荐

  1. ipsec IP安全策略操作 win7

    //禁止 win7 连接 public static void BannedWINRunCmd() { string str = Console.ReadLine(); System.Diagnost ...

  2. html 空链接 href="#"与href="javascript:void(0)"的区别

    #包含了一个位置信息 默认的锚是#top 也就是网页的上端 而javascript:void(0) 仅仅表示一个死链接 这就是为什么有的时候页面很长浏览链接明明是#但跳动到了页首 而javascrip ...

  3. 数据结构:顺序表(python版)

    顺序表python版的实现(部分功能未实现) #!/usr/bin/env python # -*- coding:utf-8 -*- class SeqList(object): def __ini ...

  4. 股指的趋势持续研究(Hurst指数)

    只贴基本的适合小白的Matlab实现代码,深入的研究除了需要改进算法,我建议好好研究一下混沌与分形,不说让你抓住趋势,至少不会大亏,这个资金盈亏回调我以前研究过. function [line_H,R ...

  5. php实现设计模式之 适配器模式

    <?php /* * 适配器模式:将一个类的接口转换成客户希望的另外一个接口.Adapter模式使得原来由于接口不兼容而不能一起工作的那些类可以一起工作(结构型模式) * * 一个源接口,不符合 ...

  6. jQuery:年月日三级联动

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default3.aspx.cs ...

  7. 转载利用伪元素单个颜色实现 hover 和 active 时的明暗变化效果

    1.颜色小tip知识 在背景色上方叠加一个黑色半透明层 rgba(0,0,0,.2) 可以得到一个更暗的颜色 在背景色上方叠加一个白色半透明层 rgba(255,255,255,.2) 可以得到一个更 ...

  8. HTML5 Canvas眨眼睛动画

    效果请看: http://keleyi.com/a/bjad/p9exlcwi.htm 请使用支持HTML5的浏览器查看效果. 以下是代码: <html> <body> < ...

  9. SharePoint 2013 工作流之使用Visio设计篇

    SharePoint 2013增强了工作流,不仅仅基于WorkFlow Foundation 4.0了,设计方式也不仅仅是Designer,还包括Visio中设计,下面我们就一个简单的例子,介绍下. ...

  10. Android 第一http请求访问慢,以后就快了的问题

    android的服务端是用MVC+ef,第一次访问特别慢,第一次以后就快了. 在网上找了很多原因,解决不了.后来发现是应用程序池的问题,准确说是ef的问题,应用程序池被回收了,请求就慢了,