Search Unity

Hierarchy Plus - expands the hierarchy window with many essential features.

Discussion in 'Assets and Asset Store' started by lokinwai, Sep 14, 2017.

  1. lokinwai

    lokinwai

    Joined:
    Feb 11, 2015
    Posts:
    174
    Description
    Hierarchy Plus expands the original plain GameObject tree in Hierarchy Window with many essential features.

    [ Asset Store ] - [ Document ]

    large2.png

    ❇ SceneView Highlight and Pickup
    Highlight renderer, sprite and UI element when mouse hover it in hierarchy or scene view. Outline selected sprite (Unity does not outline sprite). Switch and pickup overlapped object in scene view.


    ❇ Topbar
    A tool bar on the top of hierarchy with several functions. Recent GameObject, Recent Scene, Save/Load Selection, Favorite, Note and Quick Settings
    topbar.jpg

    ❇ Customize Display
    Custom icon, icon tint, highlight, text color and bold for the label of GameObject. Row shading and separator, colorized tree line and highlight of level, main component as icon, children count.
    custom.png

    ❇ Exploring The Hierarchy
    Click the icon to toggle the GameObject. Back to parent buttons collapse the tree to selected parent without scroll up the long list. Shadow Label show GameObject label in empty space.
    parent.jpg

    ❇ Function Buttons
    View and toggle components and scripts. Show the tag, layer and sorting layer. Quickly set / view following state of GameObjects: (Selectable, Non-Editable, Favorite, Selection Base, Hierarchy Base, Static Flags, Prefab State, Gizmo Icon, Tag, Layer, Sorting Layer, Missing Reference, Log Message)
    FunctionButton.jpg

    ❇ And More
    • Add note to GameObject, show in hierarchy or show in scene view as sticky.
    • Persistent Data: If you change GameObject data during play mode, enable it preserves data change after exit play mode.
    • Perform batch action to all children / selected.
    • Copy and paste single / multi component.
     
    Last edited: Mar 3, 2018
  2. lokinwai

    lokinwai

    Joined:
    Feb 11, 2015
    Posts:
    174
    Version 1.1 is submitted to asset store
    • Right click left icon to pop up All-in-One menu.
    • Batch Action: Perform action to all children or all selected.
    • Component Menu: Right click component icon.
    • Component Clipboard: Copy or paste form component menu or submenu in All-in-One menu.
    • Transform Menu and Clipboard
    Batch.jpg
     
    Last edited: Nov 22, 2017
  3. lokinwai

    lokinwai

    Joined:
    Feb 11, 2015
    Posts:
    174
    Version 1.2 is submitted to asset store
    • Persistent Data: If you change GameObject data during play mode, enable it preserves data change after exit play mode.
    persistent.gif
     
  4. lokinwai

    lokinwai

    Joined:
    Feb 11, 2015
    Posts:
    174
    Version 1.2 is ready on asset store now.
     
  5. lokinwai

    lokinwai

    Joined:
    Feb 11, 2015
    Posts:
    174
    Version 1.3 is submitted to asset store
    • GameObject Note: Add note to GameObject, show in hierarchy or show in scene view as sticky.
    • Fixed: Perform action to wrong component if two or more same type component in GameObject.
    Note.jpg
     
    Last edited: Nov 22, 2017
  6. lokinwai

    lokinwai

    Joined:
    Feb 11, 2015
    Posts:
    174
    Version 1.3 is ready on asset store now.
    Price will restore after next update.

    Features planned on next update:
    GameObject recent list, Scene recent list, Selection save/load, Favorite list
     
  7. 2dgame

    2dgame

    Joined:
    Nov 24, 2014
    Posts:
    83
    Hi,
    I have two issues with the scne view highlighter:
    • when having scene view highlighter enabled and hovering over a gameobject that has a mesh filter component but no mesh (None) I get an error:
    Code (CSharp):
    1. NullReferenceException: Object reference not set to an instance of an object
    2. SceneViewOutline.OnRenderImage (UnityEngine.RenderTexture source, UnityEngine.RenderTexture destination) (at Assets/HierarchyPlus/SceneViewOutline.cs:42)
    3. UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
    and a warning:
    Code (CSharp):
    1. OnRenderImage() possibly didn't write anything to the destination texture!
    2. UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

    • all highlighter colors get reset to the default blue after entering playmode
     
    Last edited: Oct 15, 2017
  8. lokinwai

    lokinwai

    Joined:
    Feb 11, 2015
    Posts:
    174
    I have fixed the problem and submitted to asset store.
    Thanks for reporting the error.
     
    2dgame likes this.
  9. lokinwai

    lokinwai

    Joined:
    Feb 11, 2015
    Posts:
    174
    (WIP) Add a topbar with some new function:
    Recent GameObject, Recent Scene, Selection Slot, Favorites, Notes and Quick Settings

    topbar1.png topbar2.png
     
    Last edited: Nov 22, 2017
    2dgame likes this.
  10. lokinwai

    lokinwai

    Joined:
    Feb 11, 2015
    Posts:
    174
    (WIP) Display "Sorting Layer" like "Tag and Layer"

    sortinglayer.png
     
    Last edited: Nov 22, 2017
  11. lokinwai

    lokinwai

    Joined:
    Feb 11, 2015
    Posts:
    174
    Add Tag and Layer (2), so you can have they show in different setting.
    Add Sorting Layer, click on it to set Sorting Layer and Order.
    You can use mouse wheel to increase and decrease the order too.
    Add two new display options, HeadTail show the first and last letter.
    MultiHeadTail show each word first and last letter.
    And you can set use small font or not now.

    Still tuning the UX of topbar function, have this update first.:)

    taglayer1.png taglayer2.png taglayer3.png
     
    Last edited: Nov 22, 2017
  12. lokinwai

    lokinwai

    Joined:
    Feb 11, 2015
    Posts:
    174
    Version 1.4 is submitted to asset store
    • Add Tag and Layer (2), you can have tag and layer show in different setting now.
    • Add Sorting Layer, display sorting layer and order for renderer, click on it to set layer and order. Scroll mouse wheel to increase and decrease the order.
    • Add 2 new display options, "HeadTail" show the first and last letter. "MultiHeadTail" show each word first and last letter.
    • Add option to display label with small font or not.
    • Fixed: Level Highlighter of Shadow Label's minimum length changed to 0.
     
  13. lokinwai

    lokinwai

    Joined:
    Feb 11, 2015
    Posts:
    174
    Version 1.4 is ready on asset store now.
     
    Last edited: Nov 2, 2017
    SanchoP likes this.
  14. lokinwai

    lokinwai

    Joined:
    Feb 11, 2015
    Posts:
    174
    Price restore is submitted to store, it may update today or tomorrow.
     
  15. lokinwai

    lokinwai

    Joined:
    Feb 11, 2015
    Posts:
    174
    (WIP) Custom Icon, Icon Tint, Highlight, Text Color and Bold

    custom.png
     
    Last edited: Nov 22, 2017
  16. lokinwai

    lokinwai

    Joined:
    Feb 11, 2015
    Posts:
    174
    Version 1.5 is submitted to asset store.
    • Customize: Custom icon, icon tint, highlight, text color and bold. (In All-in-one menu)
    • Auto Width on GameObject Note.
    • Fixed: Shader error on OpenGL platform (MacOS)
    • Fixed: Popup window popup on wrong position.
    Customize.jpg
     
  17. lokinwai

    lokinwai

    Joined:
    Feb 11, 2015
    Posts:
    174
    Version 1.5 is ready on asset store now.
     
  18. lokinwai

    lokinwai

    Joined:
    Feb 11, 2015
    Posts:
    174
    (WIP) Quick settings to different feature.

    qsetting.png
     
    Last edited: Nov 22, 2017
  19. lokinwai

    lokinwai

    Joined:
    Feb 11, 2015
    Posts:
    174
    Version 1.6 is submitted to asset store.
    • Topbar: A tool bar on top of hierarchy with several new function.
    • Recent GameObject: Select recent GameObject, scroll the mouse wheel can select backward or forward.
    • Recent Scene: Select recent scene.
    • Selection: Save and load selection of GameObjects.
    • Favorite and Note: Select GameObject marked as favorite or attached note.
    • Quick Setting: Open setting window or toggle different feature.
    New price is also submitted, it is last chance to get it with cheap price.
     
  20. lokinwai

    lokinwai

    Joined:
    Feb 11, 2015
    Posts:
    174
    Version 1.7 is submitted to asset store.
    • Draw tree with different color tint.
    • Added color option for background of Topbar.
    • Fixed: Topbar blocked by scene sticky header.

    treeline1.png treeline2.png
     
  21. 2dgame

    2dgame

    Joined:
    Nov 24, 2014
    Posts:
    83
    Using Unity 2017.2 and Hierarchy Plus 1.5 I get the following warning:
     
  22. lokinwai

    lokinwai

    Joined:
    Feb 11, 2015
    Posts:
    174
    Fixed and include to 1.7 update.
     
    2dgame likes this.
  23. Art-voodu

    Art-voodu

    Joined:
    May 15, 2014
    Posts:
    2
    Hi! The new update doesn't work with Playmaker, it's lot of errors. Unity 2017.1.0f3
     
  24. lokinwai

    lokinwai

    Joined:
    Feb 11, 2015
    Posts:
    174
    What errors do you have? I tested it no problem.

    1.jpg
     
  25. 2dgame

    2dgame

    Joined:
    Nov 24, 2014
    Posts:
    83
    Version 1.7 doesn't work with .Net 4.6 anymore. previous versions did. Using Unity 2017.2.0p1 I get an exception and an error:
    Fyi: This error appears regardless on which features are activated. If I turn off all in hierarchy Plus settings, the errors are still there.


    Apart from this I really like how this plugin has evolved.
    Here's a suggestion: For the display of tags and layers it would be nice if the colors associated with them were customizable, to be able to bring them inline with certain color associations. If this is too much hassle, an option to not have them colored at all (black/white) would suffice.
     
  26. lokinwai

    lokinwai

    Joined:
    Feb 11, 2015
    Posts:
    174
    Fixed, will update later.

    I will add customize to all color settings, but I am working on a new asset. Therefore, it may need longer time to update. However, I can make a fast update that draw tags and layers without color tint.
     
    2dgame likes this.
  27. lokinwai

    lokinwai

    Joined:
    Feb 11, 2015
    Posts:
    174
    Version 1.7a is submitted to asset store.
    • Added a option that draw on first level or not in Level Highlighter.
    • Added option to disable color tint in Tags, Layers and Sorting Layers.
    • Fixed: Error when using .NET 4.6.
     
  28. lokinwai

    lokinwai

    Joined:
    Feb 11, 2015
    Posts:
    174
    Update one more in 1.7a, added a option to disable draw mask on Function Button area.

    nomask.png
     
  29. FractalCore

    FractalCore

    Joined:
    May 15, 2009
    Posts:
    151
    Hi, you might want to try this in the same scene as the Realistic FPS Prefab asset.

    https://assetstore.unity.com/packages/templates/systems/realistic-fps-prefab-7739

    I don't know if it's something about RFPS specifically, but Unity grinds to a 1fps crawl with the Hierarchy Item Drawer (all the extra icons, colours and labels) turned on. Turn it off and everything's fine again, but that defeats the purpose of Hierarchy Plus.
     
  30. 2dgame

    2dgame

    Joined:
    Nov 24, 2014
    Posts:
    83
    I still get an exception upon exiting play mode :-/
     
  31. lokinwai

    lokinwai

    Joined:
    Feb 11, 2015
    Posts:
    174
    Can you try enable different icon individually to find out which function affecting the performance.
    Thanks.
     
  32. lokinwai

    lokinwai

    Joined:
    Feb 11, 2015
    Posts:
    174
    A user in review stated that run in playmode with Hierarchy Plus will drop down the frame rate, but I try this with a interesting result. :confused:

    Disabled item drawer with 82 fps.
    test1.png
    Enable item drawer with 378 fps.
    test2.png

    Anyone has performance issue too? Can you provide some information about it.
    Thank you.

    The scene I tested from a free asset:
    https://www.assetstore.unity3d.com/en/#!/content/92132
     
  33. lokinwai

    lokinwai

    Joined:
    Feb 11, 2015
    Posts:
    174
    Is it only happen on exiting play mode? Had the scene's GameObject changed in play mode?
    I think it may be Unity clear the GameObject created in play mode, so the index is out of range during exiting and exited play mode.
     
  34. FractalCore

    FractalCore

    Joined:
    May 15, 2009
    Posts:
    151
    Log

    The option at the bottom of the Function Button list that shows little red error icons for things that have problems. Turn that off and it goes fine.

    There must have been some errors in this scene. This particular problem seems to have no effect at run time.
     
  35. lokinwai

    lokinwai

    Joined:
    Feb 11, 2015
    Posts:
    174
    Do your scene has any red error icons?
     
  36. ZhangYi-Aoutman

    ZhangYi-Aoutman

    Joined:
    May 20, 2017
    Posts:
    2
    When I search in play mode. I got following error:

    ArgumentOutOfRangeException: Argument is out of range.
    Parameter name: index
    System.Collections.Generic.List`1[UnityEditor.IMGUI.Controls.TreeViewItem].get_Item (Int32 index) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Collections.Generic/List.cs:633)
    UnityEditor.GameObjectTreeViewDataSource.GetItem (Int32 row) (at C:/buildslave/unity/build/Editor/Mono/GUI/TreeView/GameObjectTreeViewDataSource.cs:152)
    HierarchyPlus.TreeViewInject.IsItemSelected (UnityEngine.GameObject go) (at Assets/HierarchyPlus/Editor/TreeViewInject.cs:155)
    HierarchyPlus.HierarchyDrawer.DrawBackground () (at Assets/HierarchyPlus/Editor/Drawer.cs:625)
    HierarchyPlus.HierarchyDrawer.HierarchyWindowItemOnGUI (Int32 instanceID, Rect selectionRect) (at Assets/HierarchyPlus/Editor/Drawer.cs:263)
    UnityEditor.SceneHierarchyWindow.OnGUIAssetCallback (Int32 instanceID, Rect rect) (at C:/buildslave/unity/build/Editor/Mono/SceneHierarchyWindow.cs:458)
    UnityEditor.IMGUI.Controls.TreeViewController.DoItemGUI (UnityEditor.IMGUI.Controls.TreeViewItem item, Int32 row, Single rowWidth, Boolean hasFocus) (at C:/buildslave/unity/build/Editor/Mono/GUI/TreeView/TreeViewController.cs:469)
    UnityEditor.IMGUI.Controls.TreeViewController.IterateVisibleItems (Int32 firstRow, Int32 numVisibleRows, Single rowWidth, Boolean hasFocus) (at C:/buildslave/unity/build/Editor/Mono/GUI/TreeView/TreeViewController.cs:621)
    UnityEditor.IMGUI.Controls.TreeViewController.OnGUI (Rect rect, Int32 keyboardControlID) (at C:/buildslave/unity/build/Editor/Mono/GUI/TreeView/TreeViewController.cs:552)
    UnityEditor.SceneHierarchyWindow.DoTreeView (Single searchPathHeight) (at C:/buildslave/unity/build/Editor/Mono/SceneHierarchyWindow.cs:582)
    UnityEditor.SceneHierarchyWindow.OnGUI () (at C:/buildslave/unity/build/Editor/Mono/SceneHierarchyWindow.cs:402)
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:232)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MethodBase.cs:115)
    UnityEditor.HostView.Invoke (System.String methodName, System.Object obj) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:285)
    UnityEditor.HostView.Invoke (System.String methodName) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:278)
    UnityEditor.HostView.InvokeOnGUI (Rect onGUIPosition) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:245)
     
  37. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    Hi,
    Two scenes i made including the plugin had severe drop down frame rate.
    I found it was the plugin database and when you run the game the plugin create some object that is running in background.
    I assume no process from the plugin should be running when i am in game mode.

    There is also some database process just after your press "Run" game ? Why ?
    I don't thind it reliable so i removed it.
     
    Last edited: Dec 6, 2017
  38. lokinwai

    lokinwai

    Joined:
    Feb 11, 2015
    Posts:
    174
    I check the range now, should fix the problem.
     
  39. lokinwai

    lokinwai

    Joined:
    Feb 11, 2015
    Posts:
    174
    Do you mean the DataObject? It only create once, unless it is deleted, then it will be auto re-created again.
    If you don't want this object, you can disable it.
     
  40. lokinwai

    lokinwai

    Joined:
    Feb 11, 2015
    Posts:
    174
    Version 1.7b is submitted to asset store.
    • Added option to draw dot in "Back to Parent" that fit the style of tree line.
    • Fixed: Error when Tag/Layer is invalid.
    • Fixed: Draw wrong things when searching.
    • Fixed: Add exception handling so that a row get error, will skip to next row.
    • Fixed: Some TreeViewInject error.
     
  41. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    I don't know, you are the plugin developper , we don't expect anything to be running while in Game mode and any object creation, we don't expect half frame rate drop down as this is a presentation plugin :eek:
    And we also don't expect a database process when pressing "play" button.

    Anyway i'll use some alternative plugin that don't have those conception issues.
     
  42. lokinwai

    lokinwai

    Joined:
    Feb 11, 2015
    Posts:
    174
    Version 1.7b is ready on asset store now.
    Added one more option: Disable Log in Playmode.
    This is the most possible function affecting the performance.
     
  43. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    Why there is a log mode ?
    (It's a visual presentation tool not some level designer plugin)
     
  44. lokinwai

    lokinwai

    Joined:
    Feb 11, 2015
    Posts:
    174
    Log function is used to show error or missing reference of gameobject.

    log.png
     
  45. ZhangYi-Aoutman

    ZhangYi-Aoutman

    Joined:
    May 20, 2017
    Posts:
    2
    Hello again, I updated to 1.7b, I have following error:

    ArgumentException: The scene is invalid.
    UnityEngine.SceneManagement.Scene.GetRootGameObjects (System.Collections.Generic.List`1 rootGameObjects) (at C:/buildslave/unity/build/artifacts/generated/common/runtime/SceneBindings.gen.cs:58)
    UnityEngine.SceneManagement.Scene.GetRootGameObjects () (at C:/buildslave/unity/build/artifacts/generated/common/runtime/SceneBindings.gen.cs:45)
    HierarchyPlus.DataObject.GetHierarchyData (Scene scene) (at Assets/HierarchyPlus/Editor/DataObject.cs:21)
    HierarchyPlus.DataObject.GetHierarchyItem (UnityEngine.GameObject go) (at Assets/HierarchyPlus/Editor/DataObject.cs:93)
    HierarchyPlus.HierarchyDrawer.DrawHighlight () (at Assets/HierarchyPlus/Editor/Drawer.cs:314)
    HierarchyPlus.HierarchyDrawer.HierarchyWindowItemOnGUI (Int32 instanceID, Rect selectionRect) (at Assets/HierarchyPlus/Editor/Drawer.cs:266)
    UnityEngine.Debug:LogException(Exception)
    HierarchyPlus.HierarchyDrawer:HierarchyWindowItemOnGUI(Int32, Rect) (at Assets/HierarchyPlus/Editor/Drawer.cs:280)
    UnityEngine.GUIUtility:processEvent(Int32, IntPtr)
     
  46. lokinwai

    lokinwai

    Joined:
    Feb 11, 2015
    Posts:
    174
    It seems that the scene of the gameobject is invalid?
    Do this scene has problem?
    Is this error also on other scene?

    You can try to disable Data Object and enable it again.
    It will re-create the Data Object if the scene is no problem.
     
  47. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    Never log during game mode, absolutely no "Hierarchy plus" process should be active during game mode.
     
  48. lokinwai

    lokinwai

    Joined:
    Feb 11, 2015
    Posts:
    174
    I found that I have set EditorWindow.autoRepaintOnSceneChange to true for hierarchy window, so in play mode the hierarchy window will repaint per frame as the scene is changed. This drop the game view frame rate. I will set this to false when enter play mode. I also optimized a lot of code with huge performance improvements.

    TestFPS1.jpg
     
  49. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    I don't know how it is coded or done, it looks like some overload on Unity system, and i'm suprised it has some frame rate impact even if minimal. I will stay with Unity default hierarchy until they decide to enhance it.
     
  50. lokinwai

    lokinwai

    Joined:
    Feb 11, 2015
    Posts:
    174
    You are wrong, after changed the setting of autoRepaintOnSceneChange. The hierarchy window will not repaint unless you touch it. Therefore, the game view in play mode does not get any impact. It is no different between enhanced drawer or the default one.