Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. We have updated the language to the Editor Terms based on feedback from our employees and community. Learn more.
    Dismiss Notice

Feedback UGui system feedback.

Discussion in 'UGUI & TextMesh Pro' started by neginfinity, Sep 26, 2021.

  1. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,353
    Following is a list of "bottlenecks" and poorly done places in uGui that I've personally experienced. I know that "elements" or whatever they are are supposed to be the next big thing (in a distant future, in a galaxy far away), but it would be nice to see some improvements to uGui.

    In no particular order.
    • The idea of embedding text labels as publicly visible child components turned out to be awful. All UI settings should really be visible at the top level, and if there's a hidden underlying component, then its configuration should be forwarded to the top level. Going to child component to configure text adds extra clicking, and the situation gets worse if you're dealing with a component htat has MULTIPLE child components whose settings should match each other (input field is an example of that)

      Basically, all text configuration for button text should be visible at the top, and internals of button comonents should be hidden.
    • Multiple common operations do not have a shortcut/quick button to perform them. One of the common operation is: "stretch component to completely fill parent widget". Basically, when user sets "stretch horizontally" or "stretch vertically" most of the time I actually want to stretch component in that direction, and this requires clicking through left/right/top/bottom fields to fill them with zeroes. This could probably implemented as "shfit + click" on alignment selection screen or somethign.
    • No shortcuts/quick buttons for pivot manupilation. Default 0.5 0.5 pivot works for many cases, but when I want 0.5, 1.0 pivot or 1.0, 1.0 pivot it is click-click-click again. There should be a popup window similar to layout selection.
    • There should be a "style" asset that I'd be able to quickly assign to components to make them all look similar to each other. Basically, if I make one button and configure it to look right and then need to configure another, I have to either COPY the original button, or go through the settings by hand again. Copying mean that if I modify the original, I'll have to walk through every copied button and alter them by hand to match the settings. This can't be solved through prefabs either (to inconvenient), it has to be a "style" asset that defines text size, text font, colors, button sprite, etc..
    • UI really should use a separate view instead of utilizing scene view. Default settings is one meter is 1 pixel, so ui elements loom over the scene, which is not really helpful.
    • UI placement/resize badly needs a pixel grid. Using floats for UI was an "amazing" idea, but I'd really need to be able to resize in pixel increments instead of worrying if being subpixel larger than needed is going to result in some rendering shenanigans due to antialiasing and whatnot.
    • Anchors should really operate on pixel grid increments as well, they're currently completely screen-resolution agnostic, as they're defined as floats, and that makes using them via UI handles difficult
    • Layouts should also be able to operate on non-fractional pixel increments as well.
    • Speaking of which, I really liked layout system, as with combinations of vertical/horizontal layouts I can make many things very quickly, and much faster than placing relative to parent, BUT. There are also couple of common operations missing. Those are "make a span" (span being an empty stretching element of UI) or "make vertical group", "make horizontal group" (both empties with groups) in UI element.
    • And yeah, would be great to have grid layout. See Qt layout system for how it should be done.
    • Image component offers limited control over how the image is going to be resized. There's "preserve aspect" checkbox, but it doesn't let me decide whether I want to use "fit height" or "fit width". This causes a ton of issues with variable layouts that have pictures. By default image component should pretty much allow me to use "fit height" or "fit width" and it should also allow me to use portion of the image. For example, I have a TALL picture that is an image strip, and I'm stuffing it into wide frame. Currently the Image will use "fit height", and that will result in a tiny picture in the middle. I should be able to use "fit width" so it fills the component completely, and clip the parts that go outside of boundaries.
    To whoever is maintaining uGui, I'd recommend to try implementing a pure GUI application with uGui, as they'll quickly encounter every single problem.

    BAsically, try implementing something like Microsoft Excel, Microsoft Word, or even Windows calculator, and then make it work in a dynamic layout. Then try to make a blog page, also using uGui. This will immediately uncover every weak link in the system.
     
    Ruslank100, PanthenEye and boolean01 like this.