【Unity】シェーダーグラフ ノードの流れをフラグで切り替える方法

f:id:Effect-Lab:20190114134556p:plain

 

こんにちは。

 

今回はフラグのオン・オフでードの流れを切り替える方法です。


下図が今回目指すものです。
シェーダー内で●と■の図形を仕込んでいて、マテリアルからどちらを有効にするかを切り替えています。

f:id:Effect-Lab:20190114165912g:plain

 

それでは作り方に進みます。
使用するノードはこちら↓の「Branch」ノードです。

f:id:Effect-Lab:20190114164425j:plain

 

このノードは、「True」と「False」に繋がったノードの流れを「Predicate」のフラグでどちらをOutputするかを切り替えるノードです。

 

 

このノードを下図のように繋げてみます。

f:id:Effect-Lab:20190114165332j:plain

 

①では、●と■の図形を「Branch」ノードに繋いで切り替えられるようにしています。

 

②では、マテリアルからフラグを切り替えられるようにプロパティ化しています。
この「Shape Switch」は、下図のようにプロパティ一覧から「Boolean」を作成したものです。

f:id:Effect-Lab:20190114165417j:plain

 

この「Boolean」を使うとマテリアルにチェックボックスが追加され、オン・オフを切り替えられるようになります。

 

そうして出来たシェーダーがこちら↓です。
Planeオブジェクトにアサインして機能を確認しています。

f:id:Effect-Lab:20190114165912g:plain

 

 

以上です。
この機能を使えば複数の機能を持ち合わせたシェーダーが作れそうですね!