private static void DrawDividerIcon(int instanceId, Rect selectionRect) { var gameObject = (GameObject)EditorUtility.InstanceIDToObject(instanceId); if (gameObject == null) { return; } var hasChildren = gameObject.transform.childCount > 0; if (hasChildren) { return; } var iconRect = new Rect(selectionRect) { width = 16f }; if (IsShowInSearch(iconRect)) { return; } iconRect.x -= 16f; GUI.DrawTexture(iconRect, RainbowHierarchyEditorUtility.GetDividerIcon()); }
//--------------------------------------------------------------------- // Helpers //--------------------------------------------------------------------- private void ButtonSettings(Rect rect) { var icon = RainbowHierarchyEditorUtility.GetSettingsButtonIcon(); if (!GUI.Button(rect, new GUIContent(icon, "Settings"), GUIStyle.none)) { return; } Selection.activeObject = _rainbowHierarchySceneConf; Close(); }
private void ButtonDefault(Rect rect) { var icon = RainbowHierarchyEditorUtility.GetDeleteButtonIcon(); if (!GUI.Button(rect, new GUIContent(icon, "Revert to Default"), GUIStyle.none)) { return; } _currentHierarchyItem.Icon = null; _currentHierarchyItem.IsIconRecursive = false; _currentHierarchyItem.IsIconCustom = false; _currentHierarchyItem.Background = null; _currentHierarchyItem.IsBackgroundRecursive = false; }
private static void DrawEditIcon(int instanceId, Rect selectionRect) { if ((Event.current.modifiers & RainbowHierarchyPreferences.ModifierKey) == EventModifiers.None) { _multiSelection = false; return; } var gameObject = (GameObject)EditorUtility.InstanceIDToObject(instanceId); if (gameObject == null) { return; } var isMouseOver = selectionRect.Contains(Event.current.mousePosition); _multiSelection = IsSelected(gameObject) ? isMouseOver || _multiSelection : !isMouseOver && _multiSelection; // if mouse is not over current folder icon or selected group if (!isMouseOver && (!IsSelected(gameObject) || !_multiSelection)) { return; } var editIcon = RainbowHierarchyEditorUtility.GetEditIcon(EditorGUIUtility.isProSkin); DrawCustomIcon(editIcon, selectionRect); if (GUI.Button(selectionRect, GUIContent.none, GUIStyle.none)) { ShowPopupWindow(selectionRect, gameObject); } EditorApplication.RepaintHierarchyWindow(); }
//--------------------------------------------------------------------- // Delegates //--------------------------------------------------------------------- private static void HierarchyWindowChanged() { RainbowHierarchyEditorUtility.UpdateSceneConfigVisibility(!RainbowHierarchyPreferences.HideConfig); }
//--------------------------------------------------------------------- // Helpers //--------------------------------------------------------------------- private static Vector2 CalcWindowPosition() { return(RainbowHierarchyEditorUtility.GetHierarchyWindow().position.position + new Vector2(10f, 30f)); }