UnityでC#の新規作成ファイルをBOM付きUTF-8にするコマンド(Mac環境向け)
昨日のエントリーでは新規作成ファイルをBOM付きUTF-8にする失敗した事を書きました。
Unityで新規作成ファイルをBOM付きUTF-8にする方法が思いついたけど結局ダメだった話 - 強火で進め
http://d.hatena.ne.jp/nakamura001/20120823/1345741148
すると @freenee さんより解決方法を教えて貰いました。
という事でその様にC#のテンプレート(雛形)ファイルを書き換える事にしょう。このファイルはUnityのバージョンアップをした時などに更新されてしまうファイルですのコマンドを準備しました。こちらのコマンドをターミナルで実行するとC#の雛形ファイルに修正が行われます。複数回実行するとBOMデータが実行しただけ追加されてしまうので必ず1回だけ実行する様に気を付けて下さい。
cd /Applications/Unity/Unity.app/Contents/Resources/ScriptTemplates;fn=81-C#\ Script-NewBehaviourScript.cs.txt;fo=${fn}.org;mv "$fn" "$fo";echo -en '\xef\xbb\xbf' > "$fn"; cat "${fo}" >> "${fn}"
もし、間違って複数回実行してしまった場合には以下のファイルをバイナリエディタで開いて先頭6byteだけ 0xEF 0xBB 0xBF 0xEF 0xBB 0xBF となる様にして下さい。もし、7byte目以降に 0xEF 0xBB 0xBF の3byteのペアが有った場合には削除して下さい。
/Applications/Unity/Unity.app/Contents/Resources/ScriptTemplates/81-C\#\ Script-NewBehaviourScript.cs.txt
このBOMを追加するコマンド、JavaScriptやBooの雛形ファイル向けのものも作ろうかと思いましたが、それらの言語でプログラムした場合には特にBOM無しUTF-8でも文字化けしない様なのでそちらは無し。