Just a couple suggestions to improve damn near everyone's use of Unity

Firstly, why am I posting this in General? Because as a whole I feel this place has become a bit of a circle jerk for bitching about Unity and we’ve become that person berating someone at their place of work and Unity employees being professionals, sit there and take it. Also, I couldn’t find any sort of suggestions forum.

I figured instead of screaming into a void on the internets to vent the frustrations of 2021, maybe I’ll try to foster some sort of positive discussion that leads to something fruitful (I realize this is a pipe dream). Also by posting this here, I’m better able to procrastinate working on my project, and I selfishly want more eyes/minds on these suggestions. If anyone can think of a better means of implementing these things who understand the underlying structures of the Unity, that would be great. And of course if anyone has other big ideas with small(ish) solutions to big problems with unity, feel free to add them.

These are big problems worthy of general discussion that may have big payoffs for us in “general”, with easy solutions: low hanging fruit.


Issue #1: It’s a pain in the ass to collapse the main asset stack in the editor, not only do you have to manually scroll up to the top of the list, you then have to Alt+ Click the collapse button to fully collapse everything.

So why is it helpful to be able to fully collapse things in your scene? Because as your scene inevitably balloons, it becomes a nightmare trying to move anything from one parent transform to another, or you simply get bogged down from a singular mass list of junk that fights you at every turn for order. You lose track of where the other thing was as you drag your asset to the top of the list and it painstakingly, slowly navigates in the direction of where you want to move said thing.

If everything is collapsed, and you select the asset you want to move, and click an asset within the hierarchy of where it wants to go, you will have a fighting chance of moving that thing to where it needs to go as only the paths of those 2 things roll open. It tidies things up and only exposes things that you have clicked on recently.

But if you’re in the bowels of asset list hell, this chore becomes unmanageable.

It is so absolutely useful to collapse, that I would suggest the default clicking should be made the standard left click toggle of the button, or at the very least make it so right clicking does a full collapse of all assets in the scene, better yet, make a prevalent hotkey like spacebar, automatically collapse everything in your scene. It’s that useful, it should have that much real estate.

Issue #2: “Time to navigate back to what I was just working on a moment ago”

It cannot be understated how much of our time is wasted trying to find that thing we were just working on 30 seconds ago. If I had to estimate, I would say over 20% of my time fiddling with dials and settings and iterating on gameplay is a constant grind of clicking on things, typing their name in the search bar over, and OVER, and OVER AGAIN.

Currently, If i want a few inspectors locked into a few things I am currently working on, I have to right click the inspector tab, go to add tab, click inspector, undock the now docked tab, move it somewhere, find the things I want to work on over time, and click the lock button on the inspector. It’s a pain.

Proposed solution: A collapsible list of things you worked on recently, based on the “undo” list, but with a better ability to navigate to that thing, so you can tweak and tune things in rapid succession without the content headache of finding those things over and over again, in your scene and project hierarchies. You guys have a great existing system that highlights changes with the prefab system, if you integrated this with the undo history, you would have a magical tool that would allow designers to quickly hop between things they are working on.

So imagine this:

But instead of prefab changes, it would keep track of recent changes globally in the project akin to an undo list, but not for the purposes of mass undoing, for the purpose of quick selection of recently worked on assets

Bonus Solution: Make middle mouse clicking a component automagically create a duplicate inspector window of that asset that is locked and auto docks on the right side of a floating set of assets you are currently working on. Here is a visual example of what this would look like if you right clicked the component to accomplish this task rather than middle mouse clicking, “Create work window” green for clarity:

7359569--896360--upload_2021-7-25_3-9-24.png

Thanks for looking this over everyone!

7359569--896360--upload_2021-7-25_3-9-24.png

4 Likes

@Aras FYI I guess :slight_smile:

1 Like

Good looking out!

In many scenarios with these kinds of hierarchical lists (including the Windows registry, Blender, and Unity) it’s possible to jump to the parent of the selected object by pressing the left arrow key. You can then collapse that option by pressing it again.

5 Likes

Left arrow does not perform a full collapse. Just a “quick collapse”. Like a high level code fold, rather than a collapse all.

Rather than messing with the sacred middle click, double clicking any currently selected object in the Hierarchy should open a new, locked Inspector for that object, as you’ve described, and do the Fit To Scene View it currently does.

If merely double clicking on an unselected object, just do the Fit To Scene View (as is). So if it’s unselected, a triple click Fits To Scene View and opens a locked Inspector for this object.

1 Like

If the audio is muted in the editor, can that button change to a more noticeable colour, and maybe flash once in a while, or emit a console message on play or something? A lot of people accidentally mute the audio and then they ask the forums why their audio isn’t working after banging their head against the desk for 5 hours.

1 Like

I think its wasted effort sadly.

I doubt the engineers at unity don’t know how to do. And I’m sure it’s not that hard to find somebody to design half decent UI.

It’s not for lack of knowledge or ideas that problems like this exist.

1 Like

I have worked on interfaces for 40 years. I know what the customer wants and by adding really good navigation items the customers were always thrilled to death. And that garnered respect and friendship between the developer and the customer. I got really, really good at my job. A great, customer aware interface puts the customer calls only in the realm of serious issues and not frivolous ‘How do I …’. Unity is fraught with this. They need interface design developers. I here by throw my hat in the ring. Unity devs can do what they do best and I add buttons, sliders, panels and the like. OR we make a clearing house of just suggestions and not personal coding fixes. What should be added to the interface.
My current issue is I would like to list the scenes in a project from an editor script. And no I dont want to formulate a build list. I have no reason for that is not how I use Unity. But do you think I could do this? Has any one seen the one liner documentation? Unity does it so why is it not public? They populate the project panel with scenes that are not in the build list. Why not us? I just spent a day trying to find this to no avail.

1 Like

Scene list Found!
https://unitylist.com/p/49u/Scene-Panel

I have a feeling that someone has a thing that addresses this somewhere on the Asset Store? But even if not, there is a delegate for selection change events, so it would theoretically be pretty easy to make a custom EditorWindow that does this.

I agree it’d be nice for Unity to just have that built in. Visual Studio has a back button which I do find really handy, especially when doing complex / deep navigation. “Where did I just see that thing?” and you can just go back-back-back-there it is!

I did this a few weeks ago. From memory I asked the AssetDatabase for all assets of the Scene type, or something along those lines.

I think the Project view probably just looks at the file contents of your Assets folder, so that probably didn’t need any special API support.

2 Likes

Oh!

What version of Unity are you on? At some point recently-ish they added a “Properties” button in the context menu of many object types, which brings up a floating Inspector locked to that object. So this particular pain already doesn’t have to be a thing any more.

1 Like

Dude, Ya made me laugh at myself! I am so humbled now. I just had to look in my scenes folder for the list. At least I have those in a discreet place. That asset though does pick up everything. It works really good.
I over complicated my idiocy but I added a streamreader for the JSON file and its good to have anyway.

Nailed it.

I’ll be damned, I swear I used this before and for some reason found it had some core functionality that made it not work for what I was trying to do, but it seems to be doing darn near exactly what I was asking for in this thread, I DO think it could be named something more specific/ enticing than “properties”, which implies some sort of settings outside its standard use case.

Edit: Ok I’m running into a couple key issues using the “properties” dialogue box. It’s a joy how easy it is to generate these dialogue boxes, but once editing something I’m sometimes unable to propagate changes to parent prefabs:
7361645--897008--upload_2021-7-26_8-51-43.png
As you can see above, it’s simply greyed out.

This wouldn’t be a big issue if I could click the top of the rollout like in prefab mode to be navigated to the asset in the project hierarchy so I could quickly set these modified properties there, but this functionality isn’t there either. The dead end here is I’m ultimately having to find things over and over again throughout the iteration process.

These “property” rollouts are most useful when you know you’re going to be working on several assets at once in rapid fire testing, quickly changing many dials on several assets. Depending on your project many of these gameplay assets will have parent prefabs you will want to prorogate your changes to. This issue does not happen in the above case where you duplicate multiple inspector windows and lock them. They retains full prefab functionality, so this pipeline of using property windows only delays a very arduous step. Finding the root assets to apply their changes to their parents is more tedious than the above scenario where you create and lock several inspector windows.

For anyone curious about optimizing your workflow when adjusting lots of things at once, I did some more testing and found that the property windows are use case specific, and have their own unique conveniences and restrictions.

If you’re hunting for assets in your project hierarchy, likely by searching by filename, you will open a properties window that directly tells you that you do not have full prefab access, and it gives you an “open prefab” option at the top.

If you open from a refence to an object, you will get a scaled down version of the property window that has no references to the parent prefab, though it is able to apply blue color blocks next to changed values denoting that they are different from the parent prefab, it just doesn’t give you any sort of shortcuts or means of applying those changes to parent prefabs.

So essentially this opens up 3 new potential work flows for a total of 4 when you want to mass work on assets with hovering windows. You can either open new inspector tabs one by one and lock them, which is a bit of a pain but you have full prefab parent inheritance access straight out of the gate. You can right click things in your scene as you change them and choose properties, this is the most convenient but gives you the least access to parent prefab value assignment. Another option and probably the most inconvenient is to go to your project window and one by one hunt down the files or click the refences in the scene, then go to the project reference and open properties there. If you ever want to apply to parent, you will have to click the “open prefab” button and assign the values in prefab mode.

Little bit of a journey of discovery with the property option that has led me to believe my original workflow is best: opening lots of inspector windows, locking them one by one per asset you plan on adjusting, and then docking them somewhere convenient.

Which leads me again to suggest the optimal solution is a “properties” option on right click, but instead of a scaled down window, it auto creates a new inspector window, locked that directly ties to prefab assets allowing for inherited values in parents as all inspector windows do.

I can imagine this is a bit of a pain to set up with all the potential issues that happen with prefabs. But it’s frustrating how close this is to a great pipeline if the properties windows would just directly apply to parent prefabs, or if the property windows were locked inspector windows.

UNDO

How to massively improve, simply: 3 types of Undo.

View Position shift + Z
Selection alt + Z

REDO should always be the Y version of the above shortcut, not some ninja-fingered combination of keyboard modifiers with the Z key.

If you want a “full collapse” press the left arrow and hold it down for about 1 second.

Edit: wait, you were talking about collapsing everything, not the main asset stack like the OP. Never mind.

Edit 2: It’s Alt. If you hold down Alt and then the left arrow key you’ll collapse everything.

1 Like

This back button really need to exist, +1 to supporting this idea.

The back button using the keyboard is ALMOST useful, but it’s overwritten by the scroll function of the editor if the scene is active. So most times you click the left button, you’re going to pan in the scene window, you have to first click into the scene hierarchy, and at that point, you’re usually just better off collapsing with a mouse click.

I can’t imagine anyone uses the keyboard scroll, as it’s rate rarely matches the speed of zoom u’re currently at to consistently be useful, and up and down don’t scroll up/down, it zooms in/ out. Would be much nicer if these buttons always had you always controlling the hierarchy selection.