• 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.

Welcome to Unity Answers

The best place to ask and answer questions about development with Unity.

To help users navigate the site we have posted a site navigation guide.

If you are a new user to Unity Answers, check out our FAQ for more information.

Make sure to check out our Knowledge Base for commonly asked Unity questions.

If you are a moderator, see our Moderator Guidelines page.

We are making improvements to UA, see the list of changes.



Follow this Question

Answers Answers and Comments

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

Related Questions

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

Can a disabled GameObject re-enable itself? 3 Answers

Find all GameObjects like Hierarchy view, including inactive roots. 0 Answers

FIndObjectOfType Problem when Changing Scenes 1 Answer

Game works great, then i build and run, it no longer works. 1 Answer

  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges