TATIKUNLOG.

主にゲーム作りについて書き留めるブログ。

ShaderGraphでCustomFunctionをコピペしたら"invalid conditional expression."というエラーが出る


PR

ぱっとググった限り、解決策が日本語で出てこなかったので記録しておきます。 f:id:tat1kun:20210326233739p:plain

エラーが発生した環境

  • Unity 2020.2.7f1
  • Universal RP 10.3.1
  • ShaderGraph 10.3.2

エラーが発生した状況

blogs.unity3d.com

上記サイトからCustomFunctionをコピペしたところ、invalid conditionというエラーが発生し、実行できませんでした。

f:id:tat1kun:20210326233744p:plain

上の画像のような感じにピンク&黒のチェック模様の表示になるはずです。赤い吹き出しにカーソルを合わせると「invalid conditional expression.」というエラーメッセージが表示されます。

解決方法

下図のように#if SHADERGRAPH_PREVIEWと書かれている部分を#ifdefに変更しました。

f:id:tat1kun:20210326233735p:plain

※#if defined (SHADERGRAPH_PREVIEW) にしても動きます。

forum.unity.com

実装が変更された時期について

リファレンスのUpgrade Guidesを見たところ、ShaderGraphが10になったタイミングで実装が変わったようです。なので、古めのShaderGraphを使っているプロジェクトを最新のUnityで起動した際に同様のエラーが発生する可能性があります。エラーが発生して困っている場合はShaderGraphのバージョンと、CustomFunctionの確認も勧めておきます。