Best way to apply character effects to many enemies?

I want to apply effects to a decent size number of enemies, like burning, slowed down, poison, and I worry about performance.

At the moment I am creating this using a different particle system for each effect tied to the prefab of the enemy, so one enemy will have one or N particle systems.

  • What would be the best approach to
    generate the same effect on several
    enemies (not all of them share the
    same model)?

  • How many particles systems are too
    many?

  • Should I attach the particle system
    to the prefab model or attach a
    particle system to the enemy object
    when the effect triggers?

At the moment I am not worried about the number of particles since I am trying to recreate the effect with the lowest ammount of particles possible, however, I worry about scalability and the overhead of instantiating so many particle systems.

Thanks for your time ; )

You can use ParticleSystem.Emit to emit multiple particles from a singular particle system which is much more optimised than instantiating particle system gameobjects for each enemy. Problem with ParticleSystem.Emit is that it emits a singular individual particle so be aware that if you have an explosion effect that emits 10 smoke particles when played then you’ll have to probably chuck ParticleSystem.Emit into a loop. Also be aware of local/global coordinates which can mess up positioning of particles