void PrintCompos() { toDebug.Sort(CompareComponentByTypeThenGameObject); System.Type t = null; foreach (var c in toDebug) { if (t != c.GetType()) { t = c.GetType(); if (!registeredTypes.ContainsKey(t)) { registeredTypes.Add(t, T_INIT_OPEN); } registeredTypes[t] = EditorGUILayout.Foldout(registeredTypes[t], t.Name); } if (registeredTypes[t]) { Debugable d = c as Debugable; EditorGUI.indentLevel++; if (!registeredD.ContainsKey(d)) { registeredD.Add(d, D_INIT_OPEN); } registeredD[d] = EditorGUILayout.Foldout(registeredD[d], c.gameObject.name); if (registeredD[d]) { EditorGUI.indentLevel++; d.ForDebugWindow(); EditorGUI.indentLevel--; } EditorGUI.indentLevel--; } } }
void PrintGO() { toDebug.Sort(CompareComponentByGameObjectThenType); GameObject go = null; foreach (var c in toDebug) { if (go != c.gameObject) { go = c.gameObject; if (!registeredGO.ContainsKey(go)) { registeredGO.Add(go, GO_INIT_OPEN); } registeredGO[go] = EditorGUILayout.Foldout(registeredGO[go], go.name); } if (registeredGO[go]) { Debugable d = c as Debugable; EditorGUI.indentLevel++; if (!registeredD.ContainsKey(d)) { registeredD.Add(d, D_INIT_OPEN); } registeredD[d] = EditorGUILayout.Foldout(registeredD[d], c.GetType().Name); if (registeredD[d]) { EditorGUI.indentLevel++; d.ForDebugWindow(); EditorGUI.indentLevel--; } EditorGUI.indentLevel--; } } }