public static void ApplyTeam(GameObject obj, TeamInfo faction) { foreach (Transform transform in obj.GetComponentsInChildren <Transform>()) { transform.gameObject.layer = faction.GetLayer(); } var components = obj.GetComponentsInChildren <ITeamComponent>(); foreach (var component in components) { component.SetTeam(faction); } }