/// <summary> /// Populates the members array with member drawers using information provided by the memberBuildList. /// Also should handle resizing the members array to the correct length, when necessary. /// GenerateMemberBuildList should always get called before this. /// </summary> protected void BuildMembers() { #if DEV_MODE && PI_ASSERTATIONS Debug.Assert(memberBuildState == MemberBuildState.BuildListGenerated, ToString() + ".BuildMembers was called but memberBuildState was " + memberBuildState); if (memberBuildList.ContainsNullMembers()) { Debug.LogError(ToString() + " memberBuildList had empty elements: " + StringUtils.ToString(memberBuildList)); } #endif DoBuildMembers(); #if DEV_MODE && PI_ASSERTATIONS if (Members.ContainsNullMembers()) { Debug.LogError("buildState=" + memberBuildState + ", DebugMode=" + DebugMode + ", members:\n" + StringUtils.ToString(members, "\n")); } #endif memberBuildState = MemberBuildState.MembersBuilt; ParentDrawerUtility.SendOnParentAssignedEvents(this); OnAfterMembersBuilt(); }