Arktoonシェーダーを触った時に、最初に最新版を入れて、その後、モデルに合わせたバージョンに差し替えー、、とかすることがあったが、消えるはずのエラーが消えずに沼った。
仕方ないので、いちど全て消して、適合バージョンをインポートしたりもしたが、改善せず。
あまりに不毛なのでその時は匙を投げた。
が、その後、別のプロジェクトを作成して、同様に適合バージョンを入れてモデルをインポートしたら、すんなり通るという場面に遭遇。
同じマシンのはずなのこれは一体...?、、と来たところで、ようやくピンと来ました。
シェーダーのキャッシュ問題ですね、これ。 実態を消しても、キャッシュが生きてるから、再インポートしても前のキャッシュを見てしまう病。 そして、Unityはプロジェクト毎にキャッシュを持つから、新規にプロジェクトをつくればそれにはハマらない。なるほど。
こうなってくると、同一シェーダーを用いつつもシェーダのバージョンが違うモデルを混在させる、、というのは相当リスキーなプロジェクト管理ということなるわけで、気をつけなければならない、、と身をもって再確認したのだった。