IEnumerator FillChildrenInsidesWithFootprints() { long startTime = DateTime.Now.Ticks; EditorUtility.DisplayProgressBar("FillChildrenInsidesWithFootprints", "Filling children graphs with footprints", 0f); yield return(null); for (int i = 0; i < placer.transform.childCount; i++) { FootprintPlacer childPlacer = placer.transform.GetChild(i).GetComponent <FootprintPlacer>(); if (!placer) { continue; } childPlacer.footprintPrefabsInside = placer.footprintPrefabsInside; try { childPlacer.UpdateData(); childPlacer.FillInsideWithFootprints(); Debug.Log("FillChildrenInsidesWithFootprints... " + (i + 1) + "/" + placer.transform.childCount + " (" + (DateTime.Now.Ticks - startTime) / 10000000 + "s)"); EditorUtility.DisplayProgressBar("FillChildrenInsidesWithFootprints", "Filling children graphs' insides footprints " + (i + 1) + "/" + placer.transform.childCount, (float)i / placer.transform.childCount); } catch (Exception e) { Debug.Log("FootprintPlacerEditor::FillChildrenInsidesWithFootprints() - Error: " + e.Message); EditorUtility.ClearProgressBar(); } yield return(null); } EditorUtility.ClearProgressBar(); }
public override void OnInspectorGUI() { DrawDefaultInspector(); if (GUILayout.Button("Clear edge", GUILayout.Width(100f))) { placer.ClearUnmodifiedFootprints(true); } if (GUILayout.Button("Clear inside", GUILayout.Width(100f))) { placer.ClearUnmodifiedFootprints(false); } if (GUILayout.Button("Fill Edges", GUILayout.Width(100f))) { placer.UpdateData(); placer.FillWithEdgesWithFootprints(); } if (GUILayout.Button("Call Fill Edges On Children", GUILayout.Width(200f))) { UtilityTools.EditorCoroutine.start(FillChildrenEdgesWithFootprints()); } if (GUILayout.Button("Fill Inside", GUILayout.Width(100f))) { placer.UpdateData(); placer.FillInsideWithFootprints(); EditorUtility.ClearProgressBar(); } if (GUILayout.Button("Call Fill Inside On Children", GUILayout.Width(200f))) { UtilityTools.EditorCoroutine.start(FillChildrenInsidesWithFootprints()); } }