Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 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 nirharpaz · Jun 15, 2015 at 06:33 PM · findfindgameobjectswithtagsearchfind-gameobjectfindwithtag

How Expensive is Find function?

having

var noiseControl :NoiseControl;

At the moment i feed this variable through the inspector. Yet, for mobile game, how expensive will it be to just find it on Awake? Is it alright to initiate around 20 'Find's at startup assuming i have around 150-200 objects in scene? or perhaps have each object it's unique tag and FindObjectsWithTag?

is it so heavy i should not consider it at all?

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

3 Replies

· Add your reply
  • Sort: 
avatar image
1

Answer by Dave-Carlile · Jun 15, 2015 at 06:48 PM

In general you don't want to run Find in an Update function, but also in general it's fine in Start. The answer to this depends entirely on your needs and your project and probably isn't something that can be answered definitively here.

You need to test it on the devices you'll be running on, and only you can determine if the resulting performance falls within your criteria of "this performance is good enough".

If I had to guess, running Find 20 times in an Awake function is probably going to run just find. But I wouldn't take my word for it.

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
avatar image
1

Answer by fafase · Jun 15, 2015 at 06:49 PM

It all depends how many and when. 100 in awake, if all awakes are run at the loading of the scene, then you are fine, you could set a splash screen to entertain during the 1s it may take.

Now if it happens during the game 100 of awakes may create a slight lag. Best would be to think either to have the inspector slot, or have a controller holding the needed references for a type and then use it when creating new objects.

How long it will take cannot be considered, you may have 1000 object and Find gets the right one first, or you have 10 objects and it is the last one. This is why you should consider finding whoever you need at the loading of the scene.

Now if you have one call here and there, it won't affect much.

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
avatar image
1

Answer by The Stick · Jun 15, 2015 at 06:52 PM

If you're expecting to only Find once ever (aka during startup) or even once in a while (ie every few seconds at minimum) then the performance hit should be tolerable/negligible. The big performance hits come from Finding several dozen times a frame.

The same should be said of the GetComponent class of methods. While they aren't that bad as they have a rather limited scope (save GetComponentInChildren, that can get messy) too many of them can cause a performance hit as well.

When in doubt, test, test, test. Thanks to the new Unity 5, you should be able to use the Profiler whether or not you paid for Unity. If you're looking for the expense of core Unity calls, I'd suggest you turn on Deep Profiling before starting up your test.

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

23 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

Related Questions

How to hit a specific object 2 Answers

Find All FindObjectOfType() 1 Answer

Find object from another scene 1 Answer

Can't figure out how to access an object after creation.,Can't figure out how to access a given instance of the object on mouse click. 1 Answer

Cant Find.() Text component in Canvas 2 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