Draggable overlays, custom toolbars, new Tool systems

Update:
Public build is now available:

Also, for devs, a quick-start guide and discussion post:
Overlays Developer Guide

Hey folks! We’re making major changes to overlays, toolbars, and tool systems in general for (EDIT) 2021.2 - should hit the alpha soon, now’s your chance to get feedback in early. We’d really appreciate it, and your input absolutely will help us to do this right. Thanks!

I originally posted in the World Building section, links to those posts below, but feel free to discuss here as well, both locations are fine.

New Tooling Ecosystem ( forum thread )

New Overlays and Toolbars ( forum thread )

46 Likes

Looks great, is there any plans to support these in builds as well? Using the same debug tools/overlays at runtime would be a huge benefit.
Considering UIToolkit is going to support runtime, and this seems to be making use of UIToolkit, maybe we could access the container so that we can display it at runtime ourselves? Would be neat if possible.

8 Likes

Thanks Scorr, glad you like it. About runtime - agreed, that would be great for in-game debugging/etc. I’ll check with the team!

5 Likes

this looks VERY promising, I’m excited! :hushed:

2 Likes

Please turn this thread into a sticky, so it won’t get lost. Everything in those videos look great, all thumbs up. Out of curiosity, how long did it take how many people to get this far?

5 Likes

Looking forward to these changes!

1 Like

Things are starting to get closer to the UI Mockups for a few years back. My body is ready.

2 Likes

That looks super promising! I think that’ll be a big boon for lots of editor tooling & third party packages. One question though, if you at this image: The pink space is unused. The pink underline is for buttons I never use. Layouts could be a dropdown along the other menu items. The play buttons could go… somewhere. To me that’s awfully close to freeing up that entire bar of space! Now just combine that with incorporating the menu items with the title bar, and we’re really in business.

7 Likes

Both layouts and layers would be 10x more useful if they were small dockable windows, layers could even be an overlay of the scene view (as there is no utility outside there).

Play, pause and step button could be on both Scene View and Game View top bars

Collab and services have their own windows already, no need there.

Account could be on Help menu together with Manage License.

Yeah, let’s get rid of that top bar!!

7 Likes

@brunocoimbra and @pvloon - yes! We’re looking toward very much that. There are some ideas like Workspaces that could make that top bar genuinely useful, or simply clearing the whole bar out. Agreed on the pink squiggles.

Of note, we have already made that toolbar customizable via code, and the next step is to make it something like the chrome/firefox/etc toolbar, where you can right-click and place quick shortcuts etc. That’ll make it very useful :slight_smile:

13 Likes

Sticky: I don’t have that kind of power here … only in the World Building forum … but I’ll find someone who can do this, yes!

Time: Tough to say exactly, we’re a small team (3 devs at the moment, but have had help from others), and as a core team we also shift into helping other areas frequently. Overlays actually had a start-then-crash, about a year ago … other parts have been slowly building up as we go, over a few years. Putting the pieces into position now, with help from things like Overlays to ensure it’s not just an API update, but instead a fully realized “ecosystem” :slight_smile:

We also have some really exciting ProBuilder updates dropping soon, so it’s not all foundation work to show :wink:

9 Likes

Looks nice AND sensible (heck, I wish I could say the same about other parts of unity…).

Any plans for the “status bar”? I’m not really fond of it tbh, vertical space is a premium.

1 Like

Nice! Personally probably would be happiest to just have the space back, but quick shortcuts in that bar sounds like a great use. If shortcuts become a thing it’d be great to bind MenuItems there, as I think lacking those currently lots of assets put shortcut like things there.

2 Likes

This is incredible!
I feel like Unity is finally becoming modern!
@gabrielw_unity , where were you all my life? We needed this years ago! :smile:

Really though, there are reasons I stick with Unity through all the countless errors, half-baked features, and questionable management — and this is one of those reasons. :stuck_out_tongue:

Now not to get off-topic or anything — but since you seem like you’d possibly be the guy to know, are there any plans to rethink the Inspector? I really need tabs to sort my Components by specifiable and customizable groups or I’m going to die. :eyes:

Also, @awesomedata , I think you’re going to like this thread. :smile:

4 Likes

Thanks for sharing those videos.
I think mostly this feels fine (and getting tools to be consistent is important), but I have some questions / notes:

Conversion path for existing tools. I tried to get a few people onboarded to the EditorTools API, and many mentioned that they do not want to (right now) support something that they cannot easily integrate, as turned out for the EditorTools API.
I tried porting some of our own tools over to this, and the issue here is that often “tools” are implemented on top of Components / MonoBehaviours, and are thus very context-specific to the selected components. At least from my tests so far it didn’t feel “easy” to make these use the new API, mostly because an “EditorTool” has no understanding of selection per se and it seems quite a bit of boilerplate needs to be implemented just to “forward” a tool command to a specific, currently selected component or set of components.
So the question here would be: are there samples for component-specific tools and how to implement them properly? Or, to put it differently, can I tap into the EditorTools API from a custom inspector directly, instead of having to make an EditorTool that then somehow figures out what is selected and provides the right details?

Shortcuts. It seems this is a missing key piece from the videos: shortcuts are important for specific tools and scenarios, and current solutions like the Shortcut Manager only deal with global shortcuts, not context-specific ones, those are “on the roadmap” for a long time now and nobody seems to be working on it. It seems from the 2nd video that you’re in fact planning for Shortcut Manager integration, but this would be a big issue I see with that.
I do not want to remap a million keyboard keys and make sure that they don’t overlap as is the current situation with tools; I just want shortcuts to be forwarded to whatever tool is active and handle them there, and then they can “bubble through” to the rest of the editor if they aren’t handled (just one way to deal with this, there are surely more).

Multiple Scene Windows. One big advantage of the tools section being at the top was that screenspace was saved, all scene views stayed clean. With the tools section moving into the scene view, what happens when I have multiple scene views open? Do the tools jump around with me? What happens to that “floating thing layout” I manually did by positioning them with scene views of different sizes? Or, in the case that each scene view comes with its own configuration, can I copy / paste configs to other scene views?

Contextual Tools. As mentioned in the “Conversion” question already I believe most tools are very context-specific. How will the screen space be leveraged for those? If I have 10 different MonoBehaviours that come with different sets of tools that are just relevant to them, it seems like I would be wasting a ton of screenspace by always having to have all their tool containers open, or I would need to constantly reconfigure my scene view to show just the tools that are relevant for that selected object. As mentioned before, it would be great to have the option to use the EditorTools API directly from a custom inspector and configure what is shown there - as done today through hooking into OnSceneGUI, but my understanding is that you want to clean this all up and have everything go through the new API.

Additional Customization and Tools that affect the project, not scene. There’s more to the UI by now than just the scene view and tools section. I understand that these might be treated by different teams inside Unity, but as a user, I’d like to also configure/dock to e.g. the right side of the toolbar (the area where Collab etc are). This is especially true for those tools that are project related and not scene related.

Looking forward to more details on those!

5 Likes

Wait, this is f*ing great. Wth. It is so much better than what I expected. You can even get rid of the annoying default toolbar I’ve wanted to destroy for years.

I love this. Can’t wait to see it alongside the better window management when that comes. Will be testing it out and reading some comments here, just wanted to say all of that asap, it took me by surprise and I really feel like saying something is good when I think it is.

4 Likes

Could we please dock tool bars in the top alongside the play buttons, unity cloud buttons, Collab buttons, and regular control buttons up at the top? It would be great to be able to dock custom stuff there.

4 Likes

I’d very much like to have Workspaces and more functional toolbar. Changing Editor layouts with a click or kind of browser tabs would be perfect for any workflow I can imagine.

3 Likes

I’m using EditorTool at the moment, and i’m sorely missing callbacks to know when its been activated and de-activated. Is that something that will be added?

1 Like

[mention|Hu0Cr05L6AaVpFg7/EAwnQ==] I believe you can use the EditorTools.activeToolChanged callback to do that. Example

1 Like