(下記の内容は執筆時点での状況を記したものであり、既に修正されている可能性もあります。)
Unity 5 においてマテリアルのプロパティをアニメーションで制御しようとすると、これに失敗することがあります。この現象は下記のような条件において発生します。
- Fixed function shader を用いている。
- そのシェーダーのプロパティをアニメーションで制御している。
この現象が発生すると、Unity Editor 上ではマテリアルのプロパティが更新されているものの、その変化がシェーダーにまで伝わらない、という状態になります。
この問題を回避する最も確実な方法は、fixed function shader の使用を止め、通常の programmable shader へと実装を切り替えることです。
例えば、Unity に付属の Mobile/Particles/Additive シェーダーは fixed function shader として実装されているため上の現象を伴いますが、下記のように programmable shader として実装し直せば問題を回避できます。
https://gist.github.com/keijiro/b91fd4c1a711a0fd3295
もし、どうしても使いたいシェーダーがあるが programmable shader への書き換え方が分からない、という場合は、その旨リクエストとして送信してください。
0 コメント