object pool

hi…i have a question about tracking the objects in the scene.
i have a lot of objects in the scene, i would like to know what is the best practice to track their state

here is the example of what structure i have in the scene:

Root
    ObjectGroup1
           ObjectSubGroup1
           ObjectSubGroup2
    ObjectGroup2
           ObjectSubGroup1
           ObjectSubGroup2
    ObjectGroup3
           ObjectSubGroup1
           ObjectSubGroup2

every group and subgroup have meshes, colliders, etc… so far i was checking the state of the object and other things
by getting the component that is attached to the script and reading the values. so every object have script attached to it, where i have values, for example transparent,hidden, value for alpha and other things…

is there a way to get the list of all objects and maintain their state in array. so every time i need to get the state or
value that is specific for object i search for a name in the array and read its values?

can somebody point me in the right direction or provide examples, it would be appreciated.

In your Start() function:

myObjects = GameObject.FindObjectsOfType(typeof(GameObject);

where myObjects is an array of GameObjects. That will set you up with an array of all of your GameObjects. If you want to be able to search by name you can add them all to a Hashtable, using their name as the key.