Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. Join us on Dec 8, 2022, between 7 am & 7 pm EST, in the DOTS Dev Blitz Day 2022 - Q&A forum, Discord, and Unity3D Subreddit to learn more about DOTS directly from the Unity Developers.
    Dismiss Notice
  3. Have a look at our Games Focus blog post series which will show what Unity is doing for all game developers – now, next year, and in the future.
    Dismiss Notice

Enhanced Hierarchy Release

Discussion in 'Assets and Asset Store' started by MukaSchultze, Sep 9, 2015.

  1. MukaSchultze

    MukaSchultze

    Joined:
    Feb 12, 2014
    Posts:
    239
    Enhanced Hierarchy 2.0 optimizes a lot your workflow and save you thousands of clicks by making GameObjects properties you use the most more accessible directly in your hierarchy.

    • Lightweight, no editor lags and freezes
    • Simple and clean, yet powerful
    • Customizable, you've got needs and tastes, right?
    • Plug 'n' play, it works out of the box
    • Nonintrusive
    • Looks nice on all hierarchies widths

    Are you tired of selecting and deselecting GameObjects all the time just to enable or disable them? Or to change their tags? Or to change their layer? Then, this extension is made for you, you can do these tedious tasks faster, with just a click on the hierarchy.

    Don't you know where strange errors in your console are coming from? Well, the extension indicates those evil GameObjects that are throwing errors.

    Does your partner keep changing that object you don't want him to change? Lock it and prevent him (or even yourself) from messing things up.

    The plugin was built with performance in mind because I'm sure you don't want any extension stealing frames from your game.

    And there's a lot more, check it out today!

    Source code included!


    Asset Store page

    eh_00.png
     

    Attached Files:

    Last edited: May 5, 2020
  2. TurboNuke

    TurboNuke

    Joined:
    Dec 20, 2014
    Posts:
    69
    We like this plugin, thanks!
    I've got a couple of suggestions for extra features, if you're interested...
    I've already implemented one in your source code, which is to add a new preference to enable / disable the whole thing.

    The other one, I've not worked out how to do yet, or if it's possible.
    What I would like is a button which shows in the hierarchy to apply prefab changes. Ideally it would only show this if there are changes which can be applied.
    I'll have another go at this when I have time and if it works I'll send you my changes. Or if you're implementing it, let me know!
    Cheers.
     
  3. MukaSchultze

    MukaSchultze

    Joined:
    Feb 12, 2014
    Posts:
    239
    Thanks for the suggestions, I'll be implementing them today, but it'll probably take a little while to be approved by the asset store, you may receive a notification when it's done.
     
  4. TurboNuke

    TurboNuke

    Joined:
    Dec 20, 2014
    Posts:
    69
    Oh nice one, thanks!
     
  5. MukaSchultze

    MukaSchultze

    Joined:
    Feb 12, 2014
    Posts:
    239
    The new update has been approved by the asset store team, take a look, and please, write a review if you like it
     
  6. TurboNuke

    TurboNuke

    Joined:
    Dec 20, 2014
    Posts:
    69
    Looking good, but the prefab thing isn't quite working for me.
    One thing, I think we need to add:
    !mod.propertyPath.Contains("m_SortingOrder") &&
    to the modifications filter.. Not sure why though, but that appears to be changing in the hierarcy,

    Some other properties dont appear to be getting saved, but I've not got to the bottom of it yet - I've had localScale, and materials being reported as changed, after applying the modification and reloading.. I'll keep looking in to it though.

    Thanks!
     
  7. ekergraphics

    ekergraphics

    Joined:
    Feb 22, 2017
    Posts:
    257
    I bought this and it seems very nice.

    But I can't figure out how to change the color of a gameobject in the hierarchy. Preferrably, I'd like to change the background color and not just the text color, to make it even more pronounced.
     
  8. MukaSchultze

    MukaSchultze

    Joined:
    Feb 12, 2014
    Posts:
    239
    Unfortunately, you can't change the background of a single object yet, but you can change the background of objects that have the same layer, for this, you just need to go into the settings and configure which layer you want to tint and select the color.
     
  9. eobet

    eobet

    Joined:
    May 2, 2014
    Posts:
    176
    I'm trying Unity 2018.3.0b5 and hadn't used this asset for a while, so it generated a lot of errors, but after updating it the errors went away but the hierarchy is still the standard one now.

    The readme still says that you only need to import it, so am I missing something, or doesn't it support 2018.3 yet?

    EDIT: Oh, I noticed s little > symbol to the right in the hierarchy which I think means I have a nested prefab, and I bet this asset doesn’t support that yet since it’s still a beta feature,
     
    Last edited: Nov 5, 2018
  10. MukaSchultze

    MukaSchultze

    Joined:
    Feb 12, 2014
    Posts:
    239
    The asset already supports Unity 2018.3 and the nested prefabs feature, the errors from the previous version probably disabled the extension, just head to the preferences page and enable it again, also, check out if you're using the right version, the latest one is 2.4.0, this is shown in the bottom right side of the preferences window.

    If it still doesn't work after that, click on the "Use Defaults" button, this will delete all the extension settings, then manually delete the extension itself and import again.

    upload_2018-11-6_7-19-46.png
     
  11. eobet

    eobet

    Joined:
    May 2, 2014
    Posts:
    176
    Thank you, that was it!

    Very simple, but I missed it since the first line in the readme was "no setup", and I must admit I was too lazy to continue reading. :)

    Any chance you will add user-configurable icons at one point? The static icon with the pencil/crossed out pencil is a metaphor which I can never get to stick in my brain. I threw this together very quickly, but to me something like a feather and weight would be much easier to remember:

    Untitled-1.png

    Maybe a full wing would be better than a feather, though...
     
  12. MukaSchultze

    MukaSchultze

    Joined:
    Feb 12, 2014
    Posts:
    239
    Happens more often than you might think.
    The extension was originally designed to have only the C# files because, in my opinion (and for the majority of other users), it's quite annoying seeing textures and files used by random plugins when you're searching for something in your project, so implementing this feature requires a bit of redesign to keep with this "non intrusive" behavior.

    By the way, some other users already requested this too, it'll probably be implemented in a future version, but I can't guarantee when.

    And, finally, feel free to leave a review at the store page if you like the plugin, thanks.
     
    eobet likes this.
  13. eobet

    eobet

    Joined:
    May 2, 2014
    Posts:
    176
    After getting it to work with b5, I now get this in 2018.3 b10, unfortunately:

     
  14. MukaSchultze

    MukaSchultze

    Joined:
    Feb 12, 2014
    Posts:
    239
    Another user already reported this, I guess Unity changed the API of the new SettingsProvider between these versions.
    For now, commenting out/removing the lines 99 and 100 of PreferencesGUI.cs fixes the problem.
     
  15. eobet

    eobet

    Joined:
    May 2, 2014
    Posts:
    176
    Thanks again!

    I also left a review. :)
     
  16. timdhoffmann

    timdhoffmann

    Joined:
    Apr 23, 2016
    Posts:
    9
    Hi,
    if I understand correctly, you can select the GameObject icon directly from the hierarchy (equivalent of the top-left-most button in the inspector). When you pick one of the standard colored ones, will that also be represented visually in the hierarchy? If so, does this clash with the new 2018.3 icons?

    Best,
    Tim
     
  17. MukaSchultze

    MukaSchultze

    Joined:
    Feb 12, 2014
    Posts:
    239
    Yes, the custom icon will show up in the hierarchy, however, the 2018.3 icon won't update (it won't if you change from the inspector either), there's an option in the settings (Hide native icon) for disabling it, just in case you don't like.
     
  18. timdhoffmann

    timdhoffmann

    Joined:
    Apr 23, 2016
    Posts:
    9
    Thanks for the quick reply. Will it be shown next to the 2018.3 icon or more generally, will both be visible at the same time?
     
  19. MukaSchultze

    MukaSchultze

    Joined:
    Feb 12, 2014
    Posts:
    239
    You can choose to keep whichever you like, or both, it's totally customizable
     
  20. timdhoffmann

    timdhoffmann

    Joined:
    Apr 23, 2016
    Posts:
    9
    Sounds amazing, thanks.
     
  21. vizgl

    vizgl

    Joined:
    Nov 4, 2014
    Posts:
    56
    Just bought this plugin and can't found feature which allow hide GO's in the editor and automatically show them when hit play or build project :-(
     
  22. MukaSchultze

    MukaSchultze

    Joined:
    Feb 12, 2014
    Posts:
    239
    The feature will be implemented, thanks for the feedback
     
    andreiagmu likes this.
  23. Trost_

    Trost_

    Joined:
    Dec 12, 2015
    Posts:
    14
    In Unity 2019 they added a left column with eye icon. Can I disable it somehow?
    Right now this makes "left side icon" setting in your plugin useless, because when I hover there - it still shows the eye and click registers as show\hide, no matter what icon I set there.
     
  24. MukaSchultze

    MukaSchultze

    Joined:
    Feb 12, 2014
    Posts:
    239
    Hi, there's no way to disable the default eye icon yet, however, you can add a greater margin on the left side and disable the "left side button at leftmost" option, that will prevent the two icons from overlapping.
     
  25. Trost_

    Trost_

    Joined:
    Dec 12, 2015
    Posts:
    14
    Ok, but I still have some ideas for you:

    1) In the screenshot, I've hidden "Background" gameobject using Unity eye icon and it shows an "eye + down arrow" on all parents that have a hidden child, which is nice. Maybe you should copy this behavior?
    2) I don't really need "left side button" from your plugin, but I hate duplicating functionality. 2 eye icons for each line that toggle independently = confusing. I'd rather hide one of those.
    3) I could disable eye icon in your plugin, but if you look at "Handle" in the screenshot: when I use your eye icon - it makes items grey. I like it and I got used to it. When I hide with unity - it doesn't do that :(

    Which brings me to the following request:
    Is it possible for your plugin to monitor when I click unity's eye button and grey out object name like it happens when I click your eye button? If you do this, I'll just turn off right eye button and be ok with it.
    I noticed that if I toggle the active checkbox in the inspector - your plugin makes the item grey, but when I click Unity eye in Hierarchy - it's not toggling "isActive".
     
  26. MukaSchultze

    MukaSchultze

    Joined:
    Feb 12, 2014
    Posts:
    239
    That's indeed a cool feature, I'll implement that.

    The eye icon from Unity uses a new API that just disables the rendering of the object, the EH icon turns the object completely off, by disabling it, although they have almost the same icon their purposes are a little different, the EH icon will probably change in a future version to something more intuitive and to prevent the confusion caused by this new Unity feature.

    I don't think so, as I said, the Unity's icon doesn't disable the object, and that greyed out effect happens when the object is disabled.

    The bottom line is that I'm still figuring out what to do with those icons, the new icon is pretty hardcoded, meaning it's difficult to remove and edit, and it doesn't fit the overall style of EH plugin.
    Thanks for the feedback.
     
  27. pocketpair

    pocketpair

    Joined:
    Jul 7, 2015
    Posts:
    72
    @MukaSchultze
    Hi, can I save prefereces as project?
    We'd like to use this asset with team and we'd like to share the settings.
     
  28. MukaSchultze

    MukaSchultze

    Joined:
    Feb 12, 2014
    Posts:
    239
    Unfortunately no, the preferences are saved using EditorPrefs so they are shared between multiple projects in the same computer instead of multiple computers on a single project. That feature may be added in a future version.
     
    pocketpair likes this.
  29. Trost_

    Trost_

    Joined:
    Dec 12, 2015
    Posts:
    14
    Sadly, in 2019.1.8.f1 I have this bug.
    "Allow locked selection" is only checked for hierarchy, not for scene.
    Clicking on canvas objects, canvas still gets selected.
    If I disable both checkboxes - canvas gets briefly selected, and then deselected. Still unable to click anything behind canvas.
     
  30. Trost_

    Trost_

    Joined:
    Dec 12, 2015
    Posts:
    14
    This didn't get any attention, so I'll back it up with a video to make it easier to see the bug:
    https__://hostr.co/kRSnGSyAraXq (remove the __ because automoderator sucks)
    See, I lock the canvas but it still grabs the selection somehow...
    (Allow locked selection on scene view is OFF)
     
  31. MukaSchultze

    MukaSchultze

    Joined:
    Feb 12, 2014
    Posts:
    239
    I've reproduced this issue on 2019.1.9f1, but couldn't find a quick fix, I'll be doing a few more tests on the upcoming days, thanks for reporting this issue.
     
    Trost_ likes this.
  32. pocketpair

    pocketpair

    Joined:
    Jul 7, 2015
    Posts:
    72
    We did it by ourselves. Thanks!
     
  33. tosiabunio

    tosiabunio

    Joined:
    Jun 29, 2010
    Posts:
    115
    Unity 2019.2 - tried to lock big part of the hierarchy. Got the following error message:

    Failed to create Object Undo, because the action is too large. Clearing undo buffer
    UnityEditor.Undo:RegisterFullObjectHierarchyUndo(Object, String)


    with the following stack:

    [Error] Failed to create Object Undo, because the action is too large. Clearing undo buffer
    UnityEditor.Undo:RegisterFullObjectHierarchyUndo(Object, String)
    Lock.DoGUI() Assets/Enhanced Hierarchy/Editor/Icons/Lock.cs:42
    Utility.SafeDoGUI() Assets/Enhanced Hierarchy/Editor/Utility.cs:432
    EnhancedHierarchy.OnItemGUI() Assets/Enhanced Hierarchy/Editor/EnhancedHierarchy.cs:72
    GUIUtility.ProcessEvent()
     
  34. MukaSchultze

    MukaSchultze

    Joined:
    Feb 12, 2014
    Posts:
    239
    How big is the object you're trying to lock? I'll try to reproduce this as soon as possible.
     
  35. tosiabunio

    tosiabunio

    Joined:
    Jun 29, 2010
    Posts:
    115
    I had to write a script to learn that, but here's its output:

    >>> # of selected objects: 53104
     
  36. MukaSchultze

    MukaSchultze

    Joined:
    Feb 12, 2014
    Posts:
    239
    That's a lot of objects, it's clearly an engine limitation.
    You could try wrapping line 42 of
    Enhanced Hierarchy/Editor/Icons/Lock.cs
    with a try/catch, like in the example below:

    Code (CSharp):
    1. try {
    2.     Undo.RegisterFullObjectHierarchyUndo(obj, locked ? "Unlock Object" : "Lock Object");
    3. }catch{
    4.    
    5. }
    This will break the undo functionality but will prevent errors from showing up. If undo is important for you, you could try locking smaller amounts of objects at a time.
     
  37. jsunandmax

    jsunandmax

    Joined:
    Jan 12, 2013
    Posts:
    17
    I've got a problem with the locking feature of this asset. When I lock a normal game object in the scene (grey cube icon), close the editor, and the reopen the editor, the lock status is preserved. So anything normal game object I've locked remain locked on editor reopen.

    However, if I lock a prefab instance in the scene hierarchy (blue cube icon), when I close the editor and reopen the editor, the lock is gone.

    I'm running 2019.3.1f1.

    I primarily wanted the locking feature to prevent prefabs from being accidentally modified while editing the scene and then having to merge overrides. The lock status not being preserved on restart prevents me from really taking advantage of the lock feature.

    Has others noticed this same problem?
     
  38. MukaSchultze

    MukaSchultze

    Joined:
    Feb 12, 2014
    Posts:
    239
    Hi, this is a known bug since the new prefabs system was introduced (Unity 2018.3 if I remember correctly). I've reported this to Unity, but they haven't fixed it yet (and I don't think they will anytime soon).

    Sorry for the inconvenience :(

    EDIT: Just found out this report on the issue tracker, I will try to implement that fix soon and see if it works.
     
    Last edited: Apr 9, 2020
  39. jsunandmax

    jsunandmax

    Joined:
    Jan 12, 2013
    Posts:
    17
    I tried implementing that fix and using the prefab handle everywhere where it modifies/reads the hideflags and it does seem to work in the scene hierarchy, Prefab locking is now saved. But...in prefab view, nested prefab locking is still not saved. So it's better, but not quite entirely fixed. Any ideas how to fix for prefab view as well?
     
  40. unity_eU9GTs238F2Clg

    unity_eU9GTs238F2Clg

    Joined:
    Apr 29, 2020
    Posts:
    1
    Hello,
    I stumbled upon this asset based on so many suggestions.
    I just have one question, does this asset help you create folders, and has the feature to strip them away during run time.?

    Thank you
     
  41. MukaSchultze

    MukaSchultze

    Joined:
    Feb 12, 2014
    Posts:
    239
    No, the plugin doesn't have any features regarding folders. Using empty GameObjects is the best way to do it, and they don't need to be stripped away, there's pretty much no overhead on GameObjects if there are no components attached.
     
  42. MukaSchultze

    MukaSchultze

    Joined:
    Feb 12, 2014
    Posts:
    239
    Version 2.4.5 was released today implementing this fix. There are some limitations on prefabs hideflags so it's not quite possible to change them in the prefab staging, it's not possible to change individual children either.

    This old bug (which is also related to hideflags) was also fixed in @2.4.5, I tied up this feature with the new "scene pickability" feature from Unity, it's working like a charm, however, it requires Unity 2019.3 or newer.
     
    Lars-Steenhoff likes this.
  43. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    3,263
    Thanks for the update! Amazing tool, use it all the time.

    And I hate the unity scene picking background color, I wish I could make that the same as the rest of the hierachy.

    If you ever manage to override that color please let me know
     
  44. MukaSchultze

    MukaSchultze

    Joined:
    Feb 12, 2014
    Posts:
    239
    I did this already (in fact I was able to remove it completely), just place the code below inside
    Assets\Enhanced Hierarchy\Editor\EnhancedHierarchy.cs
    .

    Code (CSharp):
    1. [InitializeOnLoadMethod]
    2. private static void RemoveBG() {
    3.     After.Frames(1, () => { // Wait 1 frame to make sure we only access the styles class after it's created
    4.         var s = ReflectionHelper.FindType("UnityEditor.SceneVisibilityHierarchyGUI");
    5.         var t = s.GetNestedType("Styles", ReflectionHelper.FULL_BINDING);
    6.  
    7.         t.SetStaticField("backgroundColor", Color.clear);
    8.     });
    9. }
    As a collateral effect, the hover tint will be slightly off:
    upload_2020-5-5_13-51-16.png
     
    Lars-Steenhoff likes this.
  45. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    3,263
    Cool thanks!
     
  46. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    3,263
    I think I did something wrong, Where exactly should I place the code in the script? ( what line )

    I'm on unity 2019.3.2f1

    Assets/Enhanced Hierarchy/Editor/EnhancedHierarchy.cs(629,21): error CS0116: A namespace cannot directly contain members such as fields or methods
     
  47. MukaSchultze

    MukaSchultze

    Joined:
    Feb 12, 2014
    Posts:
    239
    Line 15 should work.

    Code (CSharp):
    1. namespace EnhancedHierarchy {
    2.     /// <summary>
    3.     /// Main class, draws hierarchy items.
    4.     /// </summary>
    5.     [InitializeOnLoad]
    6.     public static partial class EnhancedHierarchy {
    7.  
    8.         // Placing here should be fine
     
  48. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    3,263
    I think unity changed something in 2019.3 are you also on that version or older?
     
  49. MukaSchultze

    MukaSchultze

    Joined:
    Feb 12, 2014
    Posts:
    239
    Yes, it should work in 2019.3, here's a complete file, just revert the one you changed and download this inside the
    Enhanced Hierarchy
    folder.
     
  50. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    3,263
    Thanks I was doing it wrong, it's working now!

    So much cleaner look now, its great
     
    MukaSchultze likes this.