Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 Jun 22
sparklines
Close Help
  • 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
0
Question by GimLee · Sep 25, 2015 at 07:23 PM · performance optimizationdeactivate

When should I deactivate objects, and what is the most effecient way?

I have made a 2d sidescroller game. So I've been thinking if I should deactivate objects when they are outside the camera, in order to optimize the performance. So I have a couple of questions regarding this.

  • Is Unity already doing something smart, not rendering objects outside of screen, without me knowing it?

  • What's best performance wise? Disable the object's renderer, or toggle activeSelf?

  • Is it even more effecient to track and deactivate objects, rather than leave them be?

  • Is it best to have all objects figuring out in fixedUpdate() if they should be active or not. Or is it better to have one list of all objects, checking the currently active ones? Or a third option?

If you can answer one of these questions, please do so.

Thanks for reading.

Comment
Add comment · Show 1
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 GimLee · Sep 28, 2015 at 02:31 PM 0
Share

bump bump.

1 Reply

· Add your reply
  • Sort: 
avatar image
1

Answer by Dinosaurs · Sep 25, 2015 at 09:57 PM

I'm not sure about your first question; you might want to look into the new Culling Groups feature recently added in 5.2 that's discussed a bit in the Unite 2015 keynote: https://youtu.be/rcqK0WnUzbI?t=2205

As for the rest, gameObject.SetActive(false) is the way to deactivate a gameobject (assuming you can't Destroy or recycle them). Whether or not it's worthwhile will depend on how many objects you have in your scene, how many of those objects have components running code in Update(), and what your target hardware is. If you're having performance issues with the number of objects in your scene, the performance gain from turning a large portion of them off will most likely be worth the cpu cycles spent checking them.

An object that has been disabled will not run its FixedUpdate(), so you cannot check whether to re-activate it there. You'll need some kind of external manager.

Comment
Add comment · 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

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.

Follow this Question

Answers Answers and Comments

27 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Collision causing performance to drop 0 Answers

Optimized enemy clothing spawning 0 Answers

Destroying a child object? 1 Answer

Referencing children of an instantiated object. 1 Answer

How to deactivate objects that are children all at once? 0 Answers


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