private void DrawGroup(Group group, int i) { using (new HorizontalBlock(EditorStyles.toolbar, GUILayout.ExpandWidth(true))) { GUILayout.Space(5f); group.editing = EditorGUILayout.Toggle(group.editing, EditorStyles.foldout, GUILayout.Width(10)); if (group.editing) { group.Name = GUILayout.TextField(group.Name, GUILayout.Width(100)); } else { using (new ColoredBlock(group.Locked || group.Hidden ? EditorGUIUtility.isProSkin ? new Color(0.7f, 0.7f, 0.7f) : new Color(0.3f, 0.3f, 0.3f) : Color.white)) { GUILayout.Label(group.Name + "(" + group.Count + ")", GUILayout.Width(100)); } } //Select if (GUILayout.Button(new GUIContent(handIcon, "Select objects"), EditorStyles.toolbarButton, GUILayout.Width(btnSize))) { group.Select(); } //Hide group.Hidden = GUILayout.Toggle(group.Hidden, new GUIContent(eyeIcon, "Hide objects"), EditorStyles.toolbarButton, GUILayout.Width(btnSize)); //Lock group.Locked = GUILayout.Toggle(group.Locked, new GUIContent(lockIcon, "Freeze objects"), EditorStyles.toolbarButton, GUILayout.Width(btnSize)); //Highlight group.Highlighted = GUILayout.Toggle(group.Highlighted, new GUIContent(lightIcon, "Highlight group objects"), EditorStyles.toolbarButton, GUILayout.Width(btnSize)); GUILayout.FlexibleSpace(); MoveGroupBtns(i, group); if (GUILayout.Button(new GUIContent("X", "Delete this group"), EditorStyles.toolbarButton, GUILayout.Width(20))) { Groupify.RemoveGroup(group); SceneView.onSceneGUIDelegate -= group.OnSceneGUI; } } DropArea(GUILayoutUtility.GetLastRect(), (objects) => { group.Add(objects); }); EditGroup(group); }