See the documentation for [`GetComponentsInChildren`][1]: `public Component[] GetComponentsInChildren(Type type, bool includeInactive = false);` This states you can use the boolean `includeInactive` in `GetComponentsInChildren` to also get the inactive components. This way you can grab all the transforms. Even inactive ones. So you would probably want to do this: //Create an array of SpriteRenderers SpriteRenderer[] _spriteRenderers; void Start () { _spriteRenderers = transform.GetComponentsInChildren<SpriteRenderer>(true); //This returns an Array //Change the material on all the Sprite Renderers. for (int i = 0; i < _spriteRenderers.Length; i++) { _spriteRenderers[i].material = ...; } } [1]: http://docs.unity3d.com/ScriptReference/GameObject.GetComponentsInChildren.html