ParticleSystem/MeshParticleEmitter Optimisation and Culling.

Hi,

This is a great community and this is my first post. I apologise in advance if I made any mistakes in posting this here.

In my project I’m using a MeshParticleEmitter with Particle Renderer and Animator on almost all of my objects. I would like to turn these emitters off when they are not seen in the camera view. The way I dealt with this was as follows: I attached a script “A” to every object that had an emitter. Through script “A” I can manage all my particles and shut them off when they are outside of a BoxCollider attached to my camera.

Now, I have a bunch of questions about this:

  1. Is it more efficient to use the
    new ParticleSystem?
  2. Is there an automatic/built-in way
    of turning these particles off
    without the script I have. Did
    someone write a script for this
    already? Does Unity have a box I can
    check for this?
  3. When I use my method I have to
    either check the objects on
    TriggerEnter/Exit and turn them
    on/off or I have to check and go
    through all the objects I saved in a
    list with a CoRoutine every t
    seconds, checking if they are
    colliding with the box. Which way is
    more efficient?
  4. Would it be more efficient to
    deactivate the object that carries
    the ParticleEmitter or put the emit
    to false?
  5. Am I capable of manipulating the
    new ParticleSystem the same way I
    did with the old one through
    scripting? Which one should I rely
    on?
  6. I have a background object that
    emits particles everywhere and
    encapsulates the camera… If I stop
    it’s emitter by making it false, it
    stops altogether. Is it possible to
    cull the particles that stay outside
    of the camera view?

In a nutshell is there a better way to optimize the performance when using particles?

Thanks!

I realize this is an old topic, but in case you haven’t sorted this out yet, or in case anyone sees this post in the future, you may want to check into OnBecameVisible()