There are inconsistent line endings in the 'SomeScript.cs' script. Some are Mac OS X (UNIX) and some are Windows. 的處理方法
Unity 使用上常常遇到的警告,經常從 Unity Project 點選程式碼,使用預設的 IDE - Visual Studio 編輯程式碼後,回到 Unity 等待編譯完成後,會遇到丟出來的警告訊息:
There are inconsistent line endings in the ‘Assets/Example.cs’ script. Some are Mac OS X (UNIX) and some are Windows. This might lead to incorrect line numbers in stacktraces and compiler errors. Many text editors can fix this using Convert Line Endings menu commands.
意思是 ‘Assets/Example.cs’ script 存在不一致的換行符號,有些是 Mac OS X (UNIX) 的換行符號 (LF)(\n),有些是 Windows 的換行符號 (CR+LF)(\r\n),這可能導致錯誤的行號計算,或者是編譯錯誤。許多文字編輯器都有存在換行符號的功能調整。(關於個作業系統的換行符號定義,請參考 Reference)
目前因為僅使用 Windows 開發編譯,還沒有遇到過編譯錯誤,但這警告訊息的出現實在是很煩人,以前都是這樣處理:
- 開啟 NotePad++ (強大的文字編輯器之一)
- 開啟發生該警告的檔案
- 編輯 > 換行符號 > 轉換成 Windows 格式 (Edit > EOL Conversion > Windows EOL) * EOL, end of line
- 執行 EOL 調整解決該錯誤
但這樣做很慢又麻煩,因此上網尋找其他的處理方式,找到一個簡單的處理方式,是修改 Visual Studio IDE 的設定:
- Tool > Options > Environments > Documents > Check for consistent line ending on load
開啟檔案會跳出其對話視窗提示
- 選擇 Yes 即可,將 Always show this dialog 取消,未來開啟檔案會自動調整
- 之前應該是把這功能關閉了,所以常常出現這個警告…
大量批次的修改方法
使用 NotePad++ 在檔案中尋找的取代:
- Ctrl + H 開啟取代視窗
- 切換在檔案中尋找
- 搜尋模式選擇 延伸 (\r, \r, \t, \0, \x...)
- 設定資料夾位置以及過濾 *.cs
- 將 \n 取代成 \r\n
- 將 \r\r\n 取代成 \r\n
- Done
沒有留言: