• Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
Question by ttzilla · Apr 12, 2012 at 11:57 AM · particlecullingocclusionemitteroptimisation

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!

Comment

People who like this

0 Show 0
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

1 Reply

· Add your reply
  • Sort: 
avatar image

Answer by zombience · Feb 06, 2013 at 06:35 PM

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()

http://docs.unity3d.com/Documentation/ScriptReference/Renderer.OnBecameVisible.html

Comment

People who like this

0 Show 1 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image Ben-BearFish · Mar 01, 2014 at 08:58 PM 0
Share

I have the same issue. I was wondering how do actually you make the Particle System visible? I know OnBecameVisible and OnBecameInvisible tell us when this happens, but I don't know how to make the actual particles visible after that. I tried setting the enabled variable to true, but this still does not work.

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Welcome to Unity Answers

If you’re new to Unity Answers, please check our User Guide to help you navigate through our website and refer to our FAQ for more information.

Before posting, make sure to check out our Knowledge Base for commonly asked Unity questions.

Check our Moderator Guidelines if you’re a new moderator and want to work together in an effort to improve Unity Answers and support our users.

Follow this Question

Answers Answers and Comments

5 People are following this question.

avatar image avatar image avatar image avatar image avatar image

Related Questions

Is it possible to get specific subtypes of particle emitters' variables through scripts? 1 Answer

Occlusion Culling - Dynamic Objects Issue 2 Answers

Particle emitter 0 Answers

How can I make a particle effect turn on with a keystroke and last for a set duration? 1 Answer

How can I solve my Mesh Particle Emitter problem? 1 Answer


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges