Arktoonシェーダーを触った時に、最初に最新版を入れて、その後、モデルに合わせたバージョンに差し替えー、、とかすることがあったが、消えるはずのエラーが消えずに沼った。

仕方ないので、いちど全て消して、適合バージョンをインポートしたりもしたが、改善せず。

あまりに不毛なのでその時は匙を投げた。

が、その後、別のプロジェクトを作成して、同様に適合バージョンを入れてモデルをインポートしたら、すんなり通るという場面に遭遇。

同じマシンのはずなのこれは一体...?、、と来たところで、ようやくピンと来ました。

シェーダーのキャッシュ問題ですね、これ。 実態を消しても、キャッシュが生きてるから、再インポートしても前のキャッシュを見てしまう病。 そして、Unityはプロジェクト毎にキャッシュを持つから、新規にプロジェクトをつくればそれにはハマらない。なるほど。

こうなってくると、同一シェーダーを用いつつもシェーダのバージョンが違うモデルを混在させる、、というのは相当リスキーなプロジェクト管理ということなるわけで、気をつけなければならない、、と身をもって再確認したのだった。

Previous Post Next Post

Unityでシェーダーを差し替えても反映されない問題