はじめに
スクリプトの値をVFXGraph内で使用する方法を紹介します
環境は Unity 2022.3.1です
コード
custom spawner block内にあるVFXSpawnerStateのvfxEventAttributeでSet○○を呼ぶことでCustoumAttributeの値をセットすることができます
パラメーター名は自由ですが今回がCustomAttributePosを使用します
using UnityEngine; using UnityEngine.VFX; public class TestBlock : VFXSpawnerCallbacks { public class InputProperties { public Vector3 TestPos; } //公開した変数名のtPropertyIDを用意 static private readonly int TestPropertyID = Shader.PropertyToID("TestPos"); private Vector3 m_TestPos; public override void OnPlay(VFXSpawnerState state, VFXExpressionValues vfxValues, VisualEffect vfxComponent) { } public override void OnUpdate(VFXSpawnerState state, VFXExpressionValues vfxValues, VisualEffect vfxComponent) { m_TestPos = vfxValues.GetVector3(TestPropertyID); //VFXGraph内で使用するCustomAttributeの名前(自由)を使う state.vfxEventAttribute.SetVector3("CustomAttributePos", m_TestPos); } public override void OnStop(VFXSpawnerState state, VFXExpressionValues vfxValues, VisualEffect vfxComponent) { } }
custom spawner blockの詳細はこちら
VFXGraph側の設定
最初にカスタムブロックを設定します
次にGet Attribute : customを生成します
Attributeの設定を行います。LocationをSourceにして名前とTypeはスクリプトで指定したものと同じにします。
完成
custom spawner blockからAttributeの設定をすることができました