(約 2,100文字の記事です。)
前回の続き。Unityの教科書2021を実践していて教科書とは違った部分について調べたことのまとめ。その他気付いたことのメモなど。
対象読者はUnityの教科書2021を実践中のUnity初心者。
スクリプトファイルの文字化け
Visual Studioで打ち込んだ日本語のコメントがUnityのインスペクターウィンドウ(小窓)上で文字化けしている。だからといって全く実害はない。コメントだから。
でもまぁ、気になるっちゃぁ気になる。文字化けなので恐らく文字コードだな。UTF-8になっていないのだろう、という予想は簡単に付く。
対処方法はこちら。
【Unity】スクリプトの文字化けに対処する – のらくるノート
1つ保存するごとに1回だけBOM付きUTF-8を指定する方法です。でも面倒だなぁ。
で、ここからが長かった。
テストしてみたところ、どうやらUnity 2021ではCSファイル作成時はUTF-8になっている。VSで開いたときも日本語は文字化けしていない。問題はそれをVSで開いて編集後にVSから上書き保存したときだ。なぜかShift-JISで上書きされる。謎。
まとめると、
- UnityでProjectで右クリック>C#を新規作成(UTF-8)
- そのファイルをVSで編集して上書き保存(Shift-JISに上書きされる)
- Unity上の小窓で文字化け
ここで私が勘違いしてしまったのだが、実は名前を付けて保存時にURLの通りUTF-8 with BOMで1回だけ保存すると、以後はCtrl + Sで上書き保存してもUTF-8が保持されるのだよ。だからVSで上書き=Shift JISというわけじゃないんだ。何という罠。これに気付かず延々と以下の試行錯誤に入ってしまった。
で、前述のURLにあるように.editorconfigファイルを.slnファイルと同じ階層に置いても、上書き保存で変化なし。UnityやVSを再起動してもダメ。
ではUnityを経由せずに「VS上でソースファイルを新規作成して同じフォルダ内に保存」した場合、なぜか日本語が含まれていてもUTF-8で保存された。なので .editorconfigの有無とは無関係と言うことが分かった。だいぶカオス。
もう面倒臭すぎるので、通常はCtrl + Sで上書きしてShift-JISで運用し、最後にまとめて ZiiDetector で一括でUTF-8に置換するのが良さげ。(そもそもUnityの小窓上でソースファイルの中身を見る必要性が出てきてから考えても遅くない。)
これが気になってメチャクチャ時間が取られたw
VSのホットキーの変更
このような事情なので、Ctrl + Shift + Sが全保存よりも、普通に名前を付けて保存に変更しよう。
余談だが、キーボード操作のみで上記のUTF-8 with BOMは操作可能なので、後で個人的にマクロ的な手順自動実行アプリ(Auto Hot Keyなど)を使って上記は回避できそうだ、と思った。が、Unityの学習のみの目的ではとりあえずShift JISで保存されていても何の問題もない+最後にまとめて変換ツールでも良さげ。なので今はこだわらない方がいいだろう。時間を無駄にした。
……、でもやっぱりとても気になったのAuto Hot Keyなどの自動化ツールを使ってスクリプトを作成し、Visual StudioのAlt + Sキーにスクリプトを割り当てた。なのでAlt + Sで勝手にぱたぱたとダイアログが表示されて1秒後には無事にUTF-8 with BOMで上書きされるようにした。これでスッキリ。
(このスクリプトの実装は3分だったw 対して調べ物の時間が3時間……(泣))でもこれは最終手段の絡め手なので一般にオススメしにくく、あまりスマートではない。VS側のドロップダウンリスト 65001 の並びがリストの上から2番目以外に変わったりしたら選択失敗するし。自己責任による最終手段。(なのでAHKなどは非公開です。)
1度でもVS上でUTF-8 with BOMで保存すれば以後は保持される
色々試してみたが、初回だけ上記の「名前を付けて保存」からUTF-8を選んで保存すると、以後はUnityを再起動させてもVSを再起動させてもUTF-8がキープされる。な~んだ、初回のファイル作成後に1回名前を付けて保存すればいいだけじゃないか!
何という無駄な試行錯誤の時間😭
1回操作くらいならばスクリプトを使わずとも手作業でも何とかなる。だがせっかく作ったスクリプトなのでAlt + Sキーに割り当てておくことにした。。
フォントが小さくて見づらい
拡大できるよ。
筆者はAmazonアソシエイト・プログラムに参加しています。(Amazon様の商品を宣伝することで紹介料をAmazon様から頂けるという大変ありがたい仕組みのこと。)
以下の商品名や画像アイコンをクリックしてからAmazon様で何かお買物をして頂ければそのご購入総額の1~2%が私に寄付されます。クリック後に別の商品のご購入でもOKです!誰が何を買ったかは私に通知されませんのでご安心下さい😊
また当サイトは楽天アフィリエイト、バリューコマース Yahoo!ショッピング アフィリエイト、および第三者配信の広告サービス(Googleアドセンス)を利用しています。
続きはこちら。