先日Visual Effect Graphのビルトインイベントについて記事を書きました。その関連記事です。
SendEventメソッドはオーバーロードで引数をint型も受け付けます。
int型で渡す場合、文字列のイベントをint型に変換する必要があります。
ShaderPropertyでID変換
このようにイベントIDはShader.PropertyToIDで取得し、そのIDを使ってイベントを送信できます。
OnPlay、OnStopのイベントIDはデフォルトで定義済み
VisualEffectAsset.csを見てもらえれば分かりますが、OnPlay、OnStopイベントはVisual Effect Graph側で定義済みです。
上記3種は同じ結果になります。
IDを使ったほうが僅かにパフォーマンス良い
以前執筆した内容ですが、文字列で渡す場合、最終的にIDを取得する処理が走ってしまうため、IDをキャッシュしておいた方が僅かにパフォーマンスは良くなります。
環境
- Unity2020.1.6f1
- macOS Catalina 10.15.5
- Visual Effect Graph 8.2.0