仕事でUnityのシェーダーをちょくちょくいじってるのですが、
不透明用シェーダー・アルファブレンドシェーダー・加算用シェーダー・減算用シェーダー…という風に
これらを別シェーダーファイルで用意しちゃうと管理が厄介ですよね。
かといって、ブレンドの変更をする場合にただ単にSrcBlend と DstBlend を
One や SrcAlpha や OneMinusSrcAlpha などから選択できるようにしてもどの組み合わせにしたら加算になるんやっけ?
と使ってもらうデザイナーが混乱するかもしれません。
なのでStandardShaderについてるRenderingModeみたいにできたら分かりやすいなと思い、
CustomShaderGUIを調べて公式のビルトインシェーダーの中に入っているStandardShaderGUI.csを参考に
それを自分なりに噛み砕いてもう少しシンプルにしたものを作ってみました。
Unityで確認されたい場合は下の方にシェーダー2つとCustomShaderGUI用のC#スクリプトのコードを書いてますので
それをコピーしてもらうか、こちらからDLしてもらって、
・shaderファイルはShaderフォルダなど適当な場所
・csファイルはScriptsフォルダなどの中のEditorフォルダ
に置いてください。