UnityのVisualEffectGraph(以下、VFX Graph)では、Blackboardでパラメータを設定し、VFXコンポーネントをアタッチしたオブジェクトのインスペクタ上で値を変更することができます。
VFX Graphにおけるパラメータの作成、使用方法は別記事に分かりやすくまとめましたので、ぜひ下記をご覧ください。
今回は、作成したパラメータ(Parameters)の値をBlackboardやインスペクタからではなく、スクリプトから変更したい状況になったので、その方法をまとめました。
Parametersを変更するスクリプト
using UnityEngine.Experimental.VFX;
public class Sample : MonoBehaviour
{
GameObject obj; // VisualEffectコンポーネントがアタッチされているGameObject
public void SetParameter(float value){
VisualEffect vfx = obj.GetComponent<VisualEffect>();
vfx.SetFloat("paramName", value);
}
}
このような感じで、VisualEffectコンポーネントを取得し、例えばfloat型のパラメータを変更したい場合はSetFloatメソッドを使用します。
他にもSetInt、SetBool、SetVector3などがあります。
詳しくは以下の公式リファレンスをご覧ください。
https://docs.unity3d.com/2018.3/Documentation/ScriptReference/Experimental.VFX.VisualEffect.html
第1引数はパラメータ名、第2引数は変更する値です。
注意点としては、 UnityEngine.Experimental.VFX という名前空間の宣言を忘れないようにしましょう。
コメント