【Unity】SubGraph内でDropDownを使用して処理を分岐させる

はじめに

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の切り替えができるようにりました。