WindowsでUnityの作業するときの文字コードと改行コードの設定
Editorconfigを設定する
UnityのC#新規作成で生成されるスクリプトはascii文字ばかりなのでその時点では文字コードは確定しておらず、そのあと編集するエディタで日本語コメントなどを書き込むと、そのエディタの設定でマルチバイト含む全体の文字コードが決まる。なのでUnityではなく使用するエディタの設定を行う。
EditorConfigでやれば、フォルダ階層の上のほうに置けばその下はすべてEditorConfigの影響下になるらしいので便利そうだ。
How to set standard encoding in Visual Studio - Stack Overflow
どんなエディタでもEditorConfigを使ってコードの統一性を高める - Qiita
VisualStudio2022だとプラグイン不要で最初からサポートされているようだ。イチから書くのではなく、Visual Studioから書き出して、それを編集する。
書き出した.editorconfigファイルを開き、次の記述をすればOK
charset = utf-8-bom
end_of_line = lf
改行コード
UnityでC#スクリプトを作るとCRLFで作られる。これはどうしよう。
とりあえずgitの設定でなんとかしてみよう。
git config --global core.autocrlf input
これでcrlfはコミット時に自動的にlfに変換される。ただし、
この変換は不可逆のためバイナリファイルなどでは致命的です。
という側面があるらしい。自分はまだ当たったことないが…
なので
git config --global core.safecrlf true
としておこう。これだとcrlfが入っているソースコードをaddしようとすると
fatal: CRLF would be replaced by LF in Assets/EditorTest/test2.cs
と怒ってくれる。VSで修正しよう。
VSの「名前を付けて保存」にショートカットを指定する
ちょっとしたことだが二手くらい省略できる。
参考
Pro Git の core.autocrlf=input についての説明が間違っている件 - Qiita
上の記事で「checkin」とあって、どういう意味だろうと思ったが多分commitしてpushする、更新分をチェックインさせる、みたいなイメージでよさそう。
Git にコマンドラインでチェックインする | Do Design Space
改行コードの自動変換 core.autocrlf core.safecrlf - [Git/サーバー] ぺんたん info
Line Endings Unifier
Line Endings Unifier - Visual Studio Marketplace
これを使えばVS上で改行コードをいい感じに管理できるようだ。だがVisual Studio2022にはまだ対応しておらず。待ってみます。