fc2ブログ
ヽ|∵|ゝ(Fantom) の 開発blog? ホーム »
最近の記事

【Unity】エディタ上(Visual Studio等)のスクリプトをUTF8に固定する  


 トラブルシューティングっぽいのが続いてるので、ついでに Unity エディタ上の問題もメモを残しておこう。

 Unity2019(?) くらいからだろうか?エディタ上で作ったスクリプトをインスペクタ上で見ると、文字化けするようになったんだよね。

●新規作成したスクリプトをインスペクタで見てみると、文字化けしている


 テキストエディタ上(Visual Studio等)では問題なく日本語表示されているので、気が付かなかったりするけど、どうやら Windows 上(?)ではデフォルトで Shift-JIS で保存されているらしい…。

 Visual Studio上の設定では UTF-8 になってても、なぜか Unityエディタでは Shift-JIS になってしまう…。対処法をググってみたらやはり同じ問題に出くわした人も多いみたいで、アセットをインポート(更新)する際のイベントハンドラを使って、スクリプトで解決する方法があった。それを試してみたら上手く行ったので、Unity初心者でもわかるように手順を書いておこう。

(※) Unity 2021.3.18f1 / Visual Studio 2019 / Windows11(x64) で確認


1. まずは「新規スクリプト生成時にテキストエンコードをUTF-8に変換する」スクリプトを以下の github からコピーしよう。

新規スクリプト生成時にテキストエンコードをUTF-8に変換する (github)



2. Unity エディタ上でプロジェクトビューから「Editor」フォルダを作り(場所は任意)、「右クリック>Create>C# Script」で新規スクリプトが作れるので、「AssetPostprocessUTF8Encode.cs」などにして作成する。ダブルクリックでテキストエディタ(Visual Studio等)を開いたら、github でコピーしたスクリプトをまるごと貼り付けて保存しよう。



3.「AssetPostprocessUTF8Encode.cs」の保存が完了したら、文字化けしているスクリプトを一旦編集などして保存し直す。すると UTF-8 になっているハズだ。インスペクタで確認しよう(インスペクタが更新されないなら、一旦フォーカスを外し、再度クリックする等)。




 まぁ、どちらの文字コードでも実質問題は無いみたいなんだけどね。素早くインスペクタで中身を確認したいとき等は UTF-8 に統一しておいた方が良いだろう。また「AssetPostprocessUTF8Encode.cs」の 45行目には改行コードの変換も入っているようなので(CRLF→LF)、不要なら Replace() 以降を削除しても良いだろう。その辺りはご自由に。

●45行目に改行コード変換も入ってるので、無効化する場合。
// 改行コードの置き換え
//string contents = enc.GetString(bs).Replace("\r\n", "\n"); //元のコード(CRLF→LF変換)
string contents = enc.GetString(bs); //改行変換を取り除いたコード








(関連記事)
【Unity】Plugins フォルダのプラットフォーム別フォルダ名 メモ
【Unity】「Missing (Script)」を修復する
【Unity】Unity2019以降で新規作成したアセットは、Unity2018以前にインポートすると壊れる?
【Unity】タイトルバーの「PREVIEW PACKAGES IN USE」を消す
【Unity】【C#】インスペクタの値を保持したまま変数をリネームする


関連記事
スポンサーサイト



category: Unity

thread: ゲーム開発

janre: コンピュータ

tag: Unityリファレンス  Unityトラブルシューティング 
tb: 0   cm: --

【Windows11】右クリックメニューを Win10 以前のものに戻す  


 ついでなので、Windows 系のメモを色々残しておく。まぁ、ググれば出てくるものだが、ネット記事っていつ消えるかわからないからね。常に記録しておくのがクセになってたりする(ローカルに色々残してある(笑))。

 Windows11 にアップグレードして一番最初に困ったのは「とにかく右クリックメニューが使いづらい」だったんだよね。なのですぐにググって速攻で直したよ。それくらい改悪と感じたのは初めてだったのかも(笑)。

 これも「レジストリをいじる」方法だね。いつかシステムから選択できるようになれば不要になるが、最近の Windows の Update は強制になってしまったので、いつ仕様が変わるかわからないしね。なのでメモは大事(笑)。

(※) Windows11 Home ver.21H2 で確認



■レジストリをいじって、右クリックメニューを Win10 時のものに戻す

1. まずはレジストリエディターを「Windowsボタン>検索」(スタートメニュー等)で「regedit」を入力し、起動しよう。管理者権限を求められたら「管理者として実行」で起動する。



2. レジストリエディターが起動したら、アドレスバーに

「コンピューター\HKCU\Software\Classes\CLSID」

をコピペし、Enter で移動する。

3.「CLSID」以下に「{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}」があればそれをクリックし、無ければ右クリックから「新規>キー」で「{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}」を作る。



4.「{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}」を選択した状態で、右ペインに「InprocServer32」というものがあればダブルクリックで開く。無ければ右クリックで「新規>文字列値」で「InprocServer32」を作る。

5.「InprocServer32」を開いたら、値のデータを空にして [OK] で終了。



 後は Windows を再起動すると、右クリックメニューが以前のものに戻っている。

 他には、DOSプロンプトやWindowsターミナルを起動して、以下を実行するのもあったね。これはかなり簡単で良かった。

●DOSプロンプトやWindowsターミナル等でコマンド実行する場合
reg.exe add "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32" /f /ve

 コマンド実行は必要なら、バッチファイル(~.bat)にしておくのも良いかもね。バッチファイルの作り方はググれば出てくるだろう。ダブルクリックでいつでも実行できるようになるから覚えれば便利だ(まぁ、個人でこの設定を頻繁に使うことはないと思うが、システム屋さんには重宝されるかも(笑))。



 そう言えば、最近少し長めのアップデートが入ったと思ったら(推定:30分と書いてあったが、実際にはそれほどかからなかった)、今度は画面の上部にウィンドウのレイアウト配置のウィジェットみたいのが表示されるようになっていたよ。ウィンドウを動かすたびに出てくるから非常に邪魔だ。ただそれはウィンドウズの「システム>マルチタスク>ウィンドウのスナップ」をクリックして5つ程チェックボックスがあるが、それを全てオフにしたら消えた。ウィンドウのスナップ自体をオフにすると、[Win]+[Shift]+[←][→]でウィンドウのモニタ移動できなくなるから、オンにしたままにしたいんだよね。まぁ、設定で選択できるだけましかな。

 何らかのツールでレジストリクリーンアップ・最適化や Windowsアップデートのロールバックなどを行ったときは元に戻る可能性はあるけどね。ただ難しくはないと思うので、元に戻ってしまったら、再度設定すれば良いだろう。







関連記事

category: 未分類

thread: Windows 全般

janre: コンピュータ

tag: Windows  トラブルシューティング 
tb: 0   cm: --

【Windows11】フォルダーの種類の最適化を無効にする  


 前回の脱線ついでに、ちょっとしたメモ的なものを載せておこう。

 Windows には困った機能があって誰もが一度は悩むんじゃないだろうか?それは『フォルダの自動最適化』という気の利いた余計な機能に…(笑)。

 私は普段開発ばかりやっているのだが、VRM Live Viewer もそうだが、最近は画像や動画、音楽など色々なメディアを扱うことも多い。それらをフォルダごとにまとめたりすると、勝手にプレビュー(サムネイル)を生成し出したり、情報カラムの表示項目を切り替えてしまったりするので、とても不便だったりする。実際にファイルサイズや更新日付など、わりと一般的なファイル自体の情報を確認したいことも多いので、そのたびに詳細に切り替えるのも面倒だ。

 ググるとエクスプローラの「フォルダー オプション」([…]>オプション)で「この表示方法をこの種類のフォルダーすべてに適用」すれば良いとあるが、なぜかしばらくすると勝手に自動最適化されてしまう。こればかりは本当に不便だ…(Macにはないらしい)。

 結局ググった情報の中で一番効果があったのは「レジストリをいじる」ことだった。これはわりと昔からある方法なのだが、Windows11 でも有効だったので、詳しく書いておこう。

 残念ながら、Windows は大きめのアップデートが入るとレジストリがリセットされるのか、元に戻ってしまうこともある。ただ年に1回もないので、再度設定するのも大変ではない。まぁ、レジストリをいじるので、自己責任でやるか否かを決めて欲しいが、Windows のバージョンによっても異なる可能性があるので、上手く行かなかったときは再度ググって調べた方が良いだろう。

(※) Windows11 Home ver.21H2 で確認



■レジストリをいじって、フォルダーの種類の最適化を無効にする

1. まずはレジストリエディターを「Windowsボタン>検索」(スタートメニュー等)で「regedit」を入力し、起動しよう。管理者権限を求められたら「管理者として実行」で起動する。



2. レジストリエディターが起動したら、アドレスバーに

「コンピューター\HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags\AllFolders」

をコピペし、Enter で移動する。



3.「AllFolders」以下に「Shell」があればそれをクリックし、無ければ右クリックから「新規>キー」で「Shell」を作る。

4.「Shell」を選択した状態で、右ペインに「FolderType」というものがあればダブルクリックで開く。無ければ右クリックで「新規>文字列値」で「FolderType」を作る。



5.「FolderType」を開いたら、値のデータに「NotSpecified」を入力して [OK] で終了。



 後は Windows を再起動すると、エクスプローラの自動最適化がされなくなる。この状態でエクスプローラの表示方法をの詳細や一覧などにし、「フォルダー オプション>この種類のフォルダーすべてに適用」を実行すれば良い。



 まぁ、何らかのツールでレジストリクリーンアップ・最適化や Windowsアップデートのロールバックなどを行ったときは元に戻る可能性はあるけどね。ただ難しくはないと思うので、元に戻ってしまったら、再度設定すれば良いだろう。ちなみに元に戻したいなら(自動最適化にしたいなら)、作った「FolderType」を削除するか、値のデータ「NotSpecified」を空にすれば良い。







関連記事

category: 未分類

thread: Windows 全般

janre: コンピュータ

tag: Windows  トラブルシューティング 
tb: 0   cm: --


プロフィール

Social

検索フォーム

全記事一覧

カテゴリ

ユーザータグ

最新記事

リンク

PR

PR

▲ Pagetop