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 NeatWolf · Dec 04, 2016 at 09:19 AM · gameobject.finddisabledfindobjectoftypefindobjectsoftypefindobjectsoftypeall

Alternatives to GameObject.Find() and GameObject.FindObjectsOfType() to also get disabled objects/components

Hi,

I guess it's been covered many times already, but I can't really find a solution in Unity Answers or the Forum or Google.

I'm looking for a metod or scrap of code that allow me to get a result comparable to GameObject.Find and GameObject.FindObjectsOfType that also takes into account disabled objects or components in the scene hierarchy.

I saw there are the "All" alternatives to these methods, but I don't know how to mask their results to only get objects in the scene.

Premise: I need to use these in a persistent singleton which also executes in editor mode, so I can't assign objects or references by hand. I get all the references on the Awake method. Also, the game designer could forget to enable certain objects before saving the scene, and I still haven't found a way to enable the relevant object before saving. Please also note that this Singleton (which is actually one of the different managers on a persistent gameobject) is only available during scene creation and it will be removed (or deleted by a previously existing singleton of the same type) when saving the final version of the scene. It gets added to each scene just to help the level designer.

Could you please help me?

Comment
Add comment · Show 2
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 Hellium · Dec 04, 2016 at 09:32 AM 0
Share

Using these methods is not recommended anyway .... Can't you set the reference at "compile time" using the Inspector ?

avatar image NeatWolf Hellium · Dec 04, 2016 at 09:46 AM 0
Share

No, I can't. I added a necessary premise to the description of the answer:

Premise: I need to use these in a persistent singleton which also executes in editor mode, so I can't assign objects or references by hand. I get all the references on the Awake method. Also, the game designer could forget to enable certain objects before saving the scene, and I still haven't found a way to enable the relevant object before saving. Please also note that this Singleton (which is actually one of the different managers on a persistent gameobject) is only available during scene creation and it will be removed (or deleted by a previously existing singleton of the same type) when saving the final version of the scene. It gets added to each scene just to help the level designer.

1 Reply

· Add your reply
  • Sort: 
avatar image
1

Answer by IsaiahKelly · Mar 13, 2017 at 07:35 PM

Find all GameObjects in the Active Scene

Here's a simple method to find all active and inactive objects in the current scene. I also added a check to exuded hidden objects since you usually don't want those and they can include internal Unity editor stuff that you shouldn't touch.

 private static IEnumerable<GameObject> FindSceneGameObjects()
 {
     return Resources
         .FindObjectsOfTypeAll(typeof(GameObject))
         .Cast<GameObject>()
         // Only get objects from the active scene.
         .Where(go => go.scene == SceneManager.GetActiveScene())
         // Ignore hidden objects.
         .Where(go => (go.hideFlags & HideFlags.HideInHierarchy) != HideFlags.HideInHierarchy);
 }

Note: Requires the use of LINQ (System.Linq)

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

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

Related Questions

GameObject.Find() in additively loaded scenes? 1 Answer

Scripts are being disabled during game play 0 Answers

Having issues getting player to damage multiple enemies 0 Answers

GameObject.Find(TextFieldVariable) - Doesnt seem to work! 1 Answer

Find a GameObject without a reference 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