はじめに
Shadergraph内で処理を分岐させる方法にKeywordsがありますがSubGraph内で使用しても入力に表示されません。Branchノードを使用すれば分岐はできますが分岐数が増えるたびに入力にBooleanを増やすのは少し不便です。
SubGraphの入力にKeywordsを追加しても表示されない
ですがShaderGraph12.0から追加されたDropDownを使用するとSubGraph内で複数の分岐処理が作成できるので紹介します
環境は Unity 2021.3.25f1です
Universal Render Pipeline を使用しています。
ノード作成
SubGraph内でDropDownを追加します。
DropDownを使用することで分岐処理を作成できEniriesで分岐数を変更できます
あとは追加したDropDownをドラック&ドロップしてDropDownの入力に分岐させたいノードを繋げばOKです。
完成
SubGraphを配置するとDropDownの項目が追加されていて、ここで処理内容を選択できるようになります。
作例
指定したUVChannelをSplitしたものを返すSubGraphです。Custom Dataを使用する際毎回UVをSplitするのは手間なので作成してみました
DropDownを使用することでUVChannelの切り替えができるようにりました。