private void DrawPrefabs(TARGET tgt) { var rectA = Reserve(); var rectB = rectA; rectB.xMin += EditorGUIUtility.labelWidth; EditorGUI.LabelField(rectA, "Prefabs", EditorStyles.boldLabel); var newPrefab = EditorGUI.ObjectField(rectB, "", default(Object), typeof(Object), false); if (newPrefab != null) { Undo.RecordObject(tgt, "Add Source"); tgt.AddPrefab(newPrefab); DirtyAndUpdate(); } BeginIndent(); for (var i = 0; i < tgt.Prefabs.Count; i++) { DrawPrefabs(tgt, i); } EndIndent(); }