Search Unity

Should Sub Emitters be children of their master Particle Systems?

Discussion in 'General Graphics' started by AssembledVS, Mar 26, 2020.

  1. AssembledVS

    AssembledVS

    Joined:
    Feb 23, 2014
    Posts:
    248
    There does not seem to be a lot of guidance on this question. I know that a Particle System's Sub Emitters module will not let you reference a Particle System that is not its child, but there's nothing stopping us from un-childing that Sub Emitter once that reference has been made. In fact, I'm not getting any warnings after doing this, even though it seems like Unity wants us to use the parent Particle System/child Sub Emitter setup.

    I've found a few posts by @richardkettlewell on this topic:

    https://forum.unity.com/threads/parenting-of-particle-sub-emitter-in-5-6.462180/#post-3002047
    "Setting up a hierarchy like this is a bad idea, and always has been. It can lead lead to subtle bugs. The UI has always warned you about reparenting the subemitter to be a child of the master system, when you try and add an emitter which is not correctly parented."

    https://forum.unity.com/threads/reg...-that-spawns-them-949522.494429/#post-3216021
    "It may change again in the future, if we can figure out how to relax the requirement, as a few users have reported it as annoying for them."

    Has the requirement been relaxed (posts are from 2017)? Maybe, since I'm not getting any warnings when un-childing and the effects seem more or less fine. But the "subtle bugs" may be what's happening in some of my systems.

    Is the recommendation still to keep the parent/child relationship? Should we expect bugs if we're separating the master Particle Systems and their Sub Emitters?
     
  2. richardkettlewell

    richardkettlewell

    Unity Technologies

    Joined:
    Sep 9, 2015
    Posts:
    2,285
    It's still recommended to keep sub-emitters as children of their owning system.
    With the VFX Graph being the focus for Unity moving forward, it's unlikely this situation will get any updates for the Built-in Particle System.

    The way that we update the systems on different threads relies on the parenting setup to be optimal. Without the parenting, you may get errors, or you may get sub-optimal threading, or you may have no problems at all - it's simply not a path we have thoroughly tested, so we don't know the answers 100%.

    "Use at your own risk" :)
     
  3. AssembledVS

    AssembledVS

    Joined:
    Feb 23, 2014
    Posts:
    248
    Thanks for the reply.

    So these "subtle bugs" you mentioned are still possible when Sub Emitters are not children of their master Particle Systems? I think that this may explain a few things!

    I haven't looked at VFX Graph too much - is it in the process of replacing the Particle System? Is it basically a better Unity Particle System? I think I got confused about it because it looks like a shader editor with its nodes and all that.