What’s perhaps more distressing, to me, is a field of endeavour that could desperately use some help from powerful and stable and capable nested prefabs (specifically within Unity) is UGUI… and yet Improved Prefabs’ design process seems to have overlooked those needs, workflows and considerations/requirements.
Seems to be fine for years so far in scene view…
We have had uGUI as one of the major use cases in the design of the nested Prefabs feature. Auto-generating Canvases for uGUI Prefabs in Prefab Mode and being able to specify a custom environment scene specifically for uGUI Prefabs (with a custom Canvas for example) are some of the pieces of functionality made to support this. The functionality has been developed with input from people from various studios, and the feedback we’ve gotten around this has been leaning to the positive side, although there are still more improvements that could be made that we didn’t have time for yet.
One of the things that doesn’t work great for uGUI is the fact that most of the root RectTransform properties are default overrides, meaning they cannot be applied or reverted (similar to root position and rotation for regular Transforms). This is how it always was, and not something we changed for new Prefabs functionality. We didn’t change it now as we had plenty of other changes to manage already, but it’s something we want to take up for consideration for future improvements.
For starter, I’m one of the few people here on the forum who actually likes the trend. But, I don’t agree with your summary here. The default should ‘show everything’. If someone (like @hippocoder ) turns off something, that is their responsibility.
But, I would not put this (actually no visual settings should go) in the settings, I would put it in a layout settings or local settings for the hierarchy.
And it is something to do with layouts: layouts is a great feature I would like to see it stronger. It is because I wear many hats when I’m working on something.
Many hats means many views in Unity. My layout is different when I’m working on levels, it’s different when I’m working on code and it’s different when I’m trying to rig characters or put together building blocks for the game (prefabs and so on). Sometimes I even have different windows open on the layout, sometimes I don’t even have scene or game window etc.
So when you build your prefabs and so on, the icons should be visible, so you know what you have there, but when you work with your code logic, you don’t need this information (mostly and probably).
So I for the icons and I for the settings but I for the local settings!
I think this might clash with existing assets who are already doing a very good job. For people looking for a more complete hierarchy window, I recommend Qhierarchy. Very useful and customizable.

That’s a bit power-usery indeed. Seems to me that the cubes could be shifted to the right and entirely replace the > arrow for editing a prefab. So people would just click the cube there instead… It’ll be too late by the time prefabs ship to change the mess of (icon) (text) (icon) (icon) (icon)
Really it could be:
text icon icon icon
Because text has a rollout and depth to it in the hierarchy, so it makes sense to bang all the icons right-justified especially if Unity wants further expansion and currently even now it’s icon text icon ( > ) and that’s just a jumble mentally.
The prefab icon could replace > and perform the same clickable functionality. It would not necessarily even have to be on the far right even, and allow futher Unity icon expansion.
I know I’ve been active in prefabs feedback but I’m only ever active in areas I have a keen vested interest in improving or using. Don’t get me wrong ![]()
Does this have a performance hit on Mac, where the editor UI is already… SLOW!!!
I don’t know, I never used unity on a Mac. You’ should ask the author.
While we’re at it, I’d like to make a request about the “model prefab”.
It may share some inheritance features similar to a prefab, but it is not one. Allowing it to share the “prefab look” and referring it as such is misleading for beginners who are already confused by the whole prefab concept. More than once I had to explain that “yes prefabs are blue, but not when they are blue with a tiny file on it” to a new guy who lost 15 min looking for the apply button on a mesh.
From my experience, this is much more needed that making a difference between prefabs, nested prefabs and variants.
Thanks.
Unity UI crew, much improved! Is there any way we’ll be able to modify these icons to our own liking if we aren’t able to currently? Thanks!
How would ‘text icon icon icon’ work for varying text lengths? If the Icons auto-adapted to the longest gameobject name in the heirarchy, surely that would cause inconsistency and strangely wide spacing causing lots of horizontal scanning across the width of the heirarhcy to work out if something is a gameobject, prefab, model asset, variant, nested prefab etc?
With the icons all on the left of the text (in a column), as it is now, it keeps consistency and familiarity.
Not a major problem IMHO.
Sorry for wall:
We find there is enough real estate there - and indeed assets on asset store that modify hierarchy - including our own - do not have the problem. Because icons take up significantly less room than text. To run into the problem you need to make the hierarchy as thin as possible and even then you need to have a huge amount of text - much longer than the accepted amount of space for a UX input.
But yes, it’s possible to run out of space now. Adding one cube doesn’t change that. The inspector itself demonstrates what occurs when space runs out, the text is cropped.
(Assuming that it’s not a deep hierarchy).
In your case the text would be cropped much more and people would just see pretty icons instead. I’m not sure that’s an improvement. “Wow! what do these icons do? WTF is this object anyway, I can’t see the name of it! let me click…”
But, I don’t see any justifiable logic having the icons on the left (or right, but I’ll get to that), because the text is more important than the icon.
There real issue here is that you are deciding to invade space designed for text, with lots of icons. Prefabs shouldn’t even be invading that space at all. But you are going there so you will create more problems to solve when there are actually alternative ways to express what is a prefab and so on without bullying the written word.
I think if I had to choose what to look at, it would be text. Currently blue text indicates a prefab. You can support endless icons I guess if you hold a modifier key and mouse over. Or you could have a row of icons at the bottom of the hierarchy that change to indicate the status of the current line you mouse over. There’s a lot more to explore UX wise than just putting prefab icons all over it for no real reason. I mean… most of the time you do not want to know if it’s a prefab or not. But that is information you choose to prioritise. Must ask why?
Now the real problem is why are you prioritising so much space in the hierarchy (which is really designed for tree view text) for things you only need to know about sometimes? Wouldn’t it be sufficient to mouse-over? or show info with a modifier? If the user is really interested in changing things then they can click it and inspector has so much more room to breathe for all of this.
I’m not against change. But change does not necessarily mean improved when it’s not actually thinking clearly about how often people will want to change a prefab. Do we need to know, all of the time and change things all of the time in relation to others?
In the games I’ve worked on in Unity in the last decade I have to say “no, I don’t need to know what things are unless I’m in tinker mode, which is not anywhere near as often as being in organisational mode”
So perhaps another thought is… have hierarchy modes. Prefab mode. Organiser mode. Heck even have thumbnail mode with slider if you want so you can zoom in and see little images of what is organised, the world is your oyster beyond just locking yourself into cubes forever ™ that nobody really needs to know about most of the time.
Prioritise what the user needs, when the user needs it.
TLDR:
Feel prefab workflow and icons are invasive and people working on real games do not need to tinker anywhere near as much as the new design is designed for. The new design assumes you would be tinkering more than organising. That’s really not true for real games. For real games the problem is much much more about organising where things are.
Is this static? is this streamed? should this dynamic object be nested inside this static level part? that’s local to this object though! Stuff like that are real problems people are battling 90% of the time in the hierarchy and have nothing at all to do with prefabs.
Feels like the new prefab hierarchy view is going to be pushing people to solve problems by throwing more prefabs/variations/nesting at it but like OOP you’ll find that it doesn’t work. You’ll hit a diamond pattern problem.
I was talking more about the heirarchy being wide and text being short. There could be inches of blank space between the text and the icons if the icons are in a column to the right. The purpose of an icon is to have instant readability and familiarity of what the icon is and what it indicates to the text/button/whatever it is ‘accompanying’ (or not accompanying in some instances where text isn’t required, such as the Facebook Icon). If you have to scan horizontally and play guesswork on which icon on the right is connected to which text on the left then the heirarchy is not usefully readable and is counterproductive to organisation and working out which icon relates to which piece of text.
Im not entirely sure how we are ‘invading’ space by placing icons to the left of text. We are hardly the first piece of software to do it and definitely won’t be the last. Maya, Max, Flash, Houdini, Unreal Engine, After Effects, iMovie, SourceTree and many more place icons on the left of text in their lists and hierarchies. ![]()
Only issue for me is the same box icon running thing length of a hierarchy window. It can definitely look silly at first. But honestly i think it just looks weird because we’re not used to it yet.
Though maybe a nice solution to break things up would be to allow the top most component change the icon if there is a special icon associated with it. Along with straightforward Editor or Gizmo api to apply a custom icons for your script
failed reasonings because “keeps” with what?
perhaps more telling, nobody discussing this can visually present what they’re discussing.
If you can’t visually iterate over your ideas, they’re just conceptions in your head.
One thing abour the icons though: I use 3DSmax all day and i never even think about the hierarchy icons. Only when i need to find something (bones, iks, a camera) is when glance at the icons. They’re helpful without being flamboyant about their presence/importance.
In Unity atm, the icons are kinda in your face. The initial designs were much worse in this regard, so these are a marked improvement but i still think they’re kinda bold, imo
I am awful at photoshop, and not a graphic designer, so don’t want to risk putting my name to some examples of UI that doesn’t make sense. ![]()
Its the same with any new evolution/phase of something relatively established. AFAIK, the Hierarchy Window hasn’t changed since Unity Version 1 which was released 13 years ago! Of course its going to look different when it changes.
Its why people always complain when a software they use daily like Twitter or Facebook changes it’s interface, but a few months after the change, when looking back at previous versions, they always look and feel strange. ![]()
Admittedly, when I started using internal Preview Prefab Builds sometime last year, it was strange to me too! But now the icons are expected and very useful. It is actually confusing to me to go back to pre-2018.3 versions and not have heirarchy icons indicating what is or isn’t a prefab or if an object is a prefab or model gameobject.
Sketch, describe or otherwise express, and send to me. I’ll refine and we can iterate together. PM or email.