[Feature Request (With working example)] ItemView modules list editing inside the inspector

zankievit

New member
I've recently started working with this asset and one thing that surprises me is that in comparison to the other assets by this company it's UI Designer UX is kinda bad. With the ItemView component in particular I'm extra surprised that it doesn't have a way to just add modules to it on the component itself. So I made a relatively quick and simple editor script for the component as a quick UX fix that I thought I'd share with the community. (Attached to this post)

What my simple editor script does:
It adds two buttons below the serialized m_Modules list of an ItemView component, for adding and for removing modules. When the add button is clicked you get a popup window (as seen in the image) with all modules in the project separated by Opsive and Custom modules in tabs, where you can select the ones you wanna add per tab and add the selected components to the list and the gameobject at the press of a button. The remove button shows the same popup window with the modules currently in the m_Modules list.

(My script does seem to create a conflict with internal editor scripts from Opsive, creating a seemingly inconsequential editor null reference exception when adding components.)

1774026513507.png

What I'd like to request:
For ItemView components and those that derive from them that have the Modules functionality. To give the "Add" functionality of the serialized m_Modules list a popup like the image below this. With the same search and grouping capabilities from your other assets. Similar to my example, showing a categorized list of available ItemView Modules that you can select, with a button at the bottom to add all selected modules to the list and object. And for the "Remove" functionality of the list elements of the serialized m_Modules list to remove the associated component on the object alongside the list element.

To also have this same UX improved experience inside of the UI Designer itself would be great as well.

1774033510772.png

Why I think it should be added:
If not for the immense UX improvements. Right now, if you even want to be able to even use the UI Designer, you're forced to have both an Inventory System Manager and a Display Panel Manager in the given Scene you're in. This makes it practically impossible to even use for people that work with multiple scene setups and the people that want to use their own UI management systems while still wanting to utilize the core UI functionality from components like the ItemView.
 

Attachments

Thank you for the detailed feature request. I totally agree with you. This makes a lot of sense, and I've been planning to implement exactly that for awhile now but that requires some breaking changes so I've postponed it for a major update.

In the meantime your solution is great though!

If you have additional feedback please do let me know as I keep track of everything in my notes :)
 
Great, I'm glad its being worked on!

I definitely had more thoughts, but I thought I'd make the request feature specific and not some kind of asset rework ask lol.
At your request, here I'll go anyway.

I think that for the UI Designer in general it is kind of a fundamental UX flaw to have one dedicated window for designing UI. Having a window that will often obstruct the scene/inspector/hierarchy isn't very handy for designing something visual, especially since it often directs you to look at the options in the inspector. As a tldr I think that designing UI should be modular and context aware.
The core of this designer can be separated into the creating and editing of UI. The feature request was about the editing so I'll start off with that.

Editing
Like in the feature request I think that every core component that can be created by the designer should have their own context aware way of being edited from the component itself.
For example, is a component like the ViewModule, where it is fundamentally a child of a component? Make sure that is visually and linguistically apparent, and that you can remove it from the parent on the component itself or maybe to replace it for another of the same base type. And for the opposite of that with a component that needs children to function, or has optional children to create? Make that apparent and give options to create them with similar UX to the feature request.

Creating
Instead of using the single dedicated UI Designer window, you could use the default Unity way of using the context menu to create a gameobject with a default configuration of components for whatever option you choose. Doing this you can for example automatically add a Display Panel Manager if you want to add a Schema or a Main Menu.
And since most things do require choosing settings, choosing that option should bring up a context aware popup window with the options needed. And make sure to explain every setting.

Now if you take these two things together you can see how this makes everything more efficient. Take for example the Inventory grid. Right now it requires a massive editor window for all the different types of things that can be added, removed, edited. While if you only have to configure some settings when initially creating it. And then being able to edit it from the component itself it removes the need for all that clutter.

In addition to this you could still have a general UI designing window for actions that don't make sense to be in a local context. For example tools to make mass edits of a selection of components. Or to search specific components and navigating to them in the hierarchy/inspector.

Other
If the user is using Display Panel components it would be great to be able to capitalise on that in the editor by adding one of those Scene Tools, that add shortcut buttons of display panels in the scene that show the selection and hides the rest. Or maybe add an option for that in the context menu to select a panel in that way. Or both. Or in some other way I'm not thinking of lol.
Some general settings for the asset in general would be nice as well. For example for things like how an editor window will select a component (simply selecting the object it is in, or how it is done right now by collapsing all other components.)

If I put in a lot more thought I'd probably be have more things come to mind, but I don't wanna write a book lol.
That's my two cents to it anyway. I hope that helps! Or reaffirms your own thoughts like I did before lol
 
Back
Top