Unity-Technologies / com.unity.selection-groups

Other
117 stars 9 forks source link

UX/UI Redesign #121

Open MechWarrior99 opened 2 years ago

MechWarrior99 commented 2 years ago

Overview

I would like to redesign (and implement) the Selection Groups UI and UX to be more user friendly and fit in better with the design of the rest of the Unity editor.

Redesign

This is a rough mockup of the main selection groups window. N1d2Liw

The top "+" button opens a GenericMenu with two options "Create Group" and "Create Group From Selection", this allows for the user to have more control of creating groups quickly with the GameObjects they want.

The group colors are now show in a bar on the left instead of a large panel. This styling looks nicer (in my opinion), and matches other things in Unity like prefab overrides in the inspector, and actions in the new Input System window. Clicking on the color bar brings up the color picker window so you can adjust the color right there.

The visibility toggle is now always shown, and in the same position and styling as the visibility icon in the hierarchy. This helps to visually connect the hierarchy and the selection groups window, and improves the UX. Additionally, instead of simply toggling the visibility of the objects, it should toggle them all to a single state, otherwise if one is visible and one is not, toggling them will simply flip and one will still be visible. It should act like the visibility icon of a parent GameObject in the hierarchy, showing visibility of of either "Visible" "hidden" or "mixed" to give the user a better understanding of the visibility of the group and objects in it.

The 'selectability' toggle is added to match the hierarchy and as it would be a useful thing to have with no apparent reason not to add it.

The icon for scene based selection groups is no longer the Scene icon as it doesn't look that good in my opinion and doesn't match the other icons. Instead a cube icon is used.

Double clicking a selection group begins renaming it as to make it consistent with every other similar interaction in Unity.

On hover, there should be a icon button on the far right side of the group item to open the settings. However I believe that the settings should simply be shown in the inspector, as it is made for showing data, and there isn't really a need to add yet another window to Unity simply for configuration groups in my opinion. Alternatively, there is no longer any need for settings really besides editing the GameObjectQuery, so perhaps a icon button that opens a popup where it can be edited, much like the Package Manager "add package by name" menu would be a better solution. 0enRQPZ (Package manager menu for reference)

Other things such as keyboard navigation, group reordering, and multiselect(most likely) should also be added.

The Lock functionality should be removed completely. While I do think it is a neat idea, it does not at all belong in the selection groups window because the window is 'external' to the data of a scene and GameObject. Instead, it should be in the hierarchy window as it has to do with data of GameObjects and how it is edited (or not edited). Additionally there is no indication that a GameObject is locked until you click on it, making it significantly less useful imo. I could also see it being the case where a user locks a object and then forgets, or more importantly, locks an object (for whatever reason) and sends it to someone else but forgot to unlock it. If that other party doesn't have Selection Groups they would have no way to unlock the GameObject.

Conclusion

These are things that I feel would massively improve usability and cohesion of Selection Groups. I should be clear that I am offering to make a PR with these changes, not asking you to do them. Also of course if you disagree or don't like some of the suggestions that's fine, I would love to discuss it more. If I were to implement it, the styling might change as I go if it does not feel right when next to the hierarchy window which I feel may be the case for some of the styling, but it is hard to know sometimes until you actually see it implement it (of course subject to approval).

Please let me know your thoughts on the matter.

sindharta commented 2 years ago

Thank you for the feedback. I'll discuss requests/suggestions in this issue with the team, and I'll get back to you to soon.

sindharta commented 2 years ago

One thing that I'd like to mention first, is that we have decided to drop the support for editor-based selection groups (as you may have noticed from the other threads). We may restore it back in the future depending on users' feedback, so if you are using that feature a lot, please feel free to let us know how and why you need that feature.

larssteenhoff commented 2 years ago

Can you explain what editor based selection groups are vs non editor based? @sindharta

sindharta commented 2 years ago

@larssteenhoff It's probably the mode that you want (based on your comments in the other threads). The doc is here: https://docs.unity3d.com/Packages/com.unity.selection-groups@0.5/manual/index.html

It's probably best if you install selection-groups using the package manager (open "add package from git URL" and type com.unity.selection-groups) . We have this mode up to 0.5.5-preview.

Unfortunately though, going forward, it's very difficult for us to maintain both editor and scene modes, and since the scene mode covers more use cases, we have decided to drop the editor mode for now.

larssteenhoff commented 2 years ago

I hope it will be picked up later on as it has a lot of potential, for me personally editor mode is my only usecase.

sindharta commented 2 years ago

@larssteenhoff

Would hiding GameObjects through preferences as mentioned below be sufficient in your use case ? https://github.com/Unity-Technologies/com.unity.selection-groups/issues/167#issuecomment-1009473484

larssteenhoff commented 2 years ago

@larssteenhoff

Would hiding GameObjects through preferences as mentioned below be sufficient in your use case ? #167 (comment)

Yes that would be good enough for my usecase

sindharta commented 2 years ago

The top "+" button opens a GenericMenu with two options "Create Group" and "Create Group From Selection", this allows for the user to have more control of creating groups quickly with the GameObjects they want.`

@MechWarrior99 This sounds good for us. Could you please make a PR for this as a start ?