# What's a viable way to get public properties from child objects?

I have a GameObject (RoomOrganizer in the picture below) with a "RoomManager" script, and one or more child objects, each with a 'HasParallelagram' component attached, likeso:

I've also got the following in the aforementioned "RoomManager"

void Awake ()
{
Rect tempRect;
HasParallelogram tempsc;

foreach (Transform child in transform)
{
try
{
tempsc = child.GetComponent<HasParallelogram>();
tempRect = tempsc.myRect;

Debug.Log(tempRect.ToString());
}
catch( System.NullReferenceException)
{
Debug.Log("Null Reference Caught");
}
}
}


HasParallelgram is an empty script with a public Rect set in the editor and nothing else.

Unfortunately, attempting to assign tempRect = tempsc.myRect causes a null pointer at run time.

I've done some more digging, and the reason for the null pointer is relatively simple - the RoomManager script gets woken ("Awake") before the HasParallelagram script gets instantiated ("Start").

It's an issue of timing - I need to wait until all objects have been instantiated before calling the RoomManager. Does Unity support a means of doing that?

What's the proper way to get a child's component?

• I didn't know Unity had a such GUI/IDE... Seems a bit... Intrusive. – jcora Jul 7 '12 at 19:44
• did you try this method? GetComponentsInChildren<HasParallelogram>() – Ali1S232 Jul 7 '12 at 21:17
• @Gajet I considered it, but that returns an array, and I'd much rather do the loop to keep things in a list. Ultimately, I don't think this is likely to be the issue, as the issue isn't in finding the component. – Raven Dreamer Jul 7 '12 at 21:25
• Post updated. I found out why I was getting a null pointer. Still looking for a solution, however. – Raven Dreamer Jul 7 '12 at 21:31
• Some sort of coroutine, perhaps? – Wackidev Jul 7 '12 at 21:39