ShaderUnityでシェーダを切り替えると、切替前のシェーダのプロパティがマテリアルにシリアライズされたままになります。シェーダを切り替えまくると無駄なプロパティによりマテリアルのファイルサイズが大きくなっていきます。この記事ではこれを解消する方法を紹介します。問題点を把握するために、まずは下記のようなシンプルなシェーダを書きます。テクスチャとfloat型のプロパティを一つずつ持っています。}}次にこのシェーダをアサインしたマテリアルを作ります。デバッグモードでインスペクタを見るとこんな感じです。テクスチャとfloat値がシリアライズされていることが確認できます。次に、シェーダの_ExampleTexを_ExampleTex2に、_ExampleFloatを_ExampleFloat2にリネームします。----------//}そしてMaterialのインスペクタからそれぞれに値を適当に入れます。するとリネーム前の使用していないプロパティが残ったまま、リネーム後のプロパティが追加されます。テクスチャの参照も残ったままなので、Exportする際にはDependencyと認識されてしまいます。ついてはスマートな方法がなく、シリアライズされたプロパティを上から見ていって不要なものであれば削除していきます。}}#endif今回はMaterialのContextMenuから使えるようにしてみました。»プロフィールUnityエンジニア。グラフィックスへの興味が強めです。Blur(渦巻ブラー)のポストエフェクトを実装する月別アーカイブはてなブログをはじめよう!halya_11さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。