Refresh case sensitivity failure. というエラー

Unityで以下のエラーが出ました。

Refresh case sensitivity failure.

原因と解決方法

主には.metaファイルが原因のようです。
不適切なファイルの追加/削除を行ったりしたときに、.metaファイルが壊れる(対応ファイルと一致しなくなる)ことが原因になったりします。

ただ、今回の僕の場合は別のことが原因でした。

このエラーが出たとき、CSVファイルを読み込んでScriptableObjectを作成する、といった処理を行っていました。
このようにエディタスクリプトで何かしらのファイルを作成する場合には以下の原因が当てはまるかもしれません。

ちなみに

AssetDatabase.Refresh();

という部分でエラーになっていました。

その原因とは、「作成したファイル名が不適切」であるということ。

詳しくは調査していないので分かりませんが、おそらく生成したファイル名に「.」が入っていたり、「,$<>」などのファイル名に使えない文字が含まれていたりした時にエラーになるのだと思います。
あとは空白文字「 」もよくなさそう。
もちろん改行文字「\n」とかも。

また、日本語のファイル名は要注意です。
僕の場合はファイル名に濁点の文字が入っていた場合にエラーとなっていました。

セリフのデータだったのでファイル名をそのままセリフにした方が分かりやすいかな、と思ったのですが
やっぱりファイル名を日本語にするのはよくないですね。

コメント