private void DrawGizmo(Rect rect) { if (GUI.Button(rect, GUIContent.none, EditorStyles.label)) { HierarchyProEditorReflection.ShowIconSelectorForObject(this.gameObject, rect); } Texture2D icon = HierarchyProEditorReflection.GetIcon(this.gameObject); if (icon != null) { Rect iconRect = rect.GetCenteredIconRect(icon); try { if (icon.name.StartsWith("sv_icon_dot")) { string woGizmo = icon.name.Substring(0, icon.name.Length - 12); int dotType = int.Parse(woGizmo.Substring(11)); if (dotType <= 7) { iconRect = rect.GetCenteredIconRect(icon, 8, 8); } else { iconRect = rect.GetCenteredIconRect(icon, 12, 12); } } else if (icon.name.StartsWith("sv_label_")) { iconRect = rect.GetCenteredIconRect(icon, 14, 6); } } catch { // ignored } GUI.DrawTexture(iconRect, icon); } }
private static void Load() { HierarchyProPreferences.Load(); HierarchyProEditorCache.Initialize(); HierarchyProEditorReflection.Load(); HierarchyProEditorIcons.Load(); HierarchyProEditorColors.Load(); HierarchyProEditorStyles.Load(); HierarchyProGroupLibrary.FindInstance(); EditorApplication.update -= HierarchyProEditorLoader.Update; EditorApplication.hierarchyWindowChanged -= HierarchyProEditorLoader.WindowChanged; EditorApplication.hierarchyWindowItemOnGUI -= HierarchyProEditorLoader.ItemOnGUI; Undo.undoRedoPerformed -= HierarchyProEditorLoader.UndoRedoPerformed; EditorApplication.update += HierarchyProEditorLoader.Update; EditorApplication.hierarchyWindowChanged += HierarchyProEditorLoader.WindowChanged; EditorApplication.hierarchyWindowItemOnGUI += HierarchyProEditorLoader.ItemOnGUI; Undo.undoRedoPerformed += HierarchyProEditorLoader.UndoRedoPerformed; }