LogicalError / realtime-CSG-for-unity

Realtime-CSG, CSG level editor for Unity
https://realtimecsg.com
MIT License
732 stars 76 forks source link

Update UI to use the modern Overlays API #388

Open nukeandbeans opened 10 months ago

nukeandbeans commented 10 months ago

This has been a want of mine for a very long time, but is also a complicated task.

What it'd do:

What is needed:

Going farther:

It'd be great if anyone can comment here on any UI/UX changes they'd like/want to see.

Questions from us would be along the lines of:

Later:

Planned changes would go here.

Appleguysnake commented 10 months ago

Excited for this since some of my most annoying bugs/quirks are GUI-related.

Aside from the UX decisions, is it technically practical to do this piece by piece? Like one update only changing the bottom toolbar or the scene info display, or would the whole GUI system have to be changed over at the same time?

As for use case, I definitely prefer using a docked window and keeping the scene view clear since I use multiple scene views together and don't need multiple overlays. I assume the docked window would have to be redone in UI Elements?

nukeandbeans commented 9 months ago

Aside from the UX decisions, is it technically practical to do this piece by piece?

It'd have to be done all at once if the existing layout is kept, as it uses separate IMGUI windows for each section of the UI.

As for use case, I definitely prefer using a docked window and keeping the scene view clear since I use multiple scene views together and don't need multiple overlays. I assume the docked window would have to be redone in UI Elements?

The added bonus of the Overlay system, is that they can be toggled on/off with just a button press and a click. No need to "toggle" RCSG on/off. Additionally, you can hide overlays per-window! It wouldn't crowd every window with the UI. It's currently possible to edit the UI manager to only display to the first scene view, but it'd require getting the window names, and creating them in a specific order to ensure it works correctly. The Overlay system really is robust, albeit a bit of a pain to set up initially.

SixParQuatre commented 8 months ago

If anyone's interested, I did a proof of concept of transforming the edit mode bar into a ToolbarOverlay; since it was the bit of the Scene UI that bothered me most in Unity 2023 - I also added a button to toggle CSG On/Off. image image image image

I'm not super versed in this package but what I've done feels like a functional replacement and has surprisingly small code footprint; so if that's interesting to yall, I could clean it up a bit and put it in a fork for evaluation.

SixParQuatre commented 8 months ago

Ok, so I've made a fork with some minor adjustments in the icons : https://github.com/SixParQuatre/realtime-CSG-for-unity.git in the EditMode-OverlayTab branch. I've tested it in 2020.3, 2022.3 and 2023.3a (though in that version, Unity does auto-port code in a bunch of CSG files).

I'll make a pull request if yall like this - I personally think it'd be good to have this in before porting all the other tools to Overlay: it solves the biggest UX issue and I don't feel the tools UI will greatly benefit from making them overlay in comparison.

SixParQuatre commented 2 months ago

There's been no update on the review for my pull request in the last 6 months; anybody knows what's going on?

SixParQuatre commented 1 month ago

@nukeandbeans sorry to bring the batsignal; but I'm curious where this is at.