「Output Event」コンテキストを使って、スポーンイベントのトリガーと同時にスクリプトを実行してみました。
Output Eventコンテキスト
VFXグラフがバージョン10以上なら、「Output Event」コンテキストが使えるはずです。
これは入力がスポーンイベントで、出力はありません。今回はスポーンコンテキストを、Initializeコンテキストだけでなく、このOutput Eventコンテキストにも接続しました。
スポーンコンテキストでは、インスペクタでSettingsを変更して、2秒のループと1秒の遅延を5回繰り返すようにしました。
Constant Spawn RateブロックのRateの値が16なので、Loop Durationの間は、毎秒16回のスポーンイベントをトリガーします。
スクリプトを追加する
このVFXグラフをアタッチしたVisual Effectオブジェクトに、スクリプトを付けます。
このスクリプトではVFXOutputEventAbstractHandlerクラスを継承します。参考:https://docs.unity3d.com/Packages/com.unity.visualeffectgraph@11.0/manual/OutputEventHandlers.html
namespace UnityEngine.VFX.Utility
{
    public class SpawnCube : VFXOutputEventAbstractHandler
    {
        public override bool canExecuteInEditor => true;
        [SerializeField] GameObject cube;
        static readonly int kPosition = Shader.PropertyToID("position");
        public override void OnVFXOutputEvent(VFXEventAttribute eventAttribute)
        {
            Vector3 position = eventAttribute.GetVector3(kPosition);
            position.y += 8f;
            Instantiate(cube, position, cube.transform.rotation);
        }
    }
}このクラスでは、canExecuteInEditorプロパティと、OnVFXOutputEventメソッドにabstractキーワードが付いているので、継承したクラスに実装を書く必要があります。
上のようにUnityEngine.VFX.Utility名前空間を定義して、この2つのメンバをオーバーライドするとエラーがなくなりました。
このスクリプトがアタッチされたVisual Effectオブジェクトで、アウトプットイベントがトリガーされたときに、OnVFXOutputEventメソッドが呼ばれます。
上のスクリプトではその時にCubeをインスタンス化しています。引数にイベントアトリビュートが渡されます。
canExecuteInEditorプロパティ
canExecuteInEditorプロパティがtrueだと、エディタでエフェクトが再生されたときにも、OnVFXOutputEventメソッドが呼ばれてCubeが作られるので大変なことになりました。
インスペクタで、canExecuteInEditorのチェックを外すと出なくなりますが、大量のCubeは残るので消しました。
サンプルスクリプト
パッケージマネージャーでVFXOutputEventAbstractHandlerのサンプルスクリプトをインポートできます。
Assetsフォルダに様々な種類のサンプルがインポートされます。














