Search Unity

  1. Good news ✨ We have more Unite Now videos available for you to watch on-demand! Come check them out and ask our experts any questions!
    Dismiss Notice
  2. Ever participated in one our Game Jams? Want pointers on your project? Our Evangelists will be available on Friday to give feedback. Come share your games with us!
    Dismiss Notice

VFX Graph - How can I dynamically stop specific events?

Discussion in 'General Graphics' started by turboturboturbo, Jan 22, 2020.

  1. turboturboturbo


    Dec 2, 2018
    I want to create X number of particle emissions.
    Each emission varies in color, and position.

    In my VFX Graph instance I create these emissions like so:

    Code (CSharp):
    1.     public void CreateEmission(Color color, Vector3 position)
    2.     {
    3.         VFXEventAttribute _attrib = vfx.CreateVFXEventAttribute();
    4.         _attrib.SetVector3("position", position);
    5.         _attrib.SetVector3("color", new Vector3(color.r, color.g, color.b));
    6.         vfx.SendEvent("OnManualSpawn", _attrib);
    7.     }
    So let's say I call this 3 times, I now have 3 different emissions running.

    Now I want to dynamically stop emission #1. How can I do this?

    Currently I am instantiating and then destroying a new VFX Graph instance for every event! But this seems wrong. Is it possible to do this within a single VFX Graph instance??
    Last edited: Jan 23, 2020