kiyasuの日記

ハッピーうれピーよろしく哀愁

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にはまだ対応しておらず。待ってみます。