Search Unity

Unity UI com.unity.ugui documentation severely out-of-date, effectively no package versioning

Discussion in 'UGUI & TextMesh Pro' started by Wolfram, Apr 18, 2023.

  1. Wolfram

    Wolfram

    Joined:
    Feb 16, 2010
    Posts:
    261
    com.unity.ugui is a builtin package, and its version number is ALWAYS 1.0.0 - despite the content being changed depending on the associated Editor version it came with. This is not how versioning works... :-/

    As a result, there IS NO publicly available current documentation:
    • All of uGUI stuff was completely removed from the "old" docs since 2019.2 (=the switch to a package)
    • Installing the documentation that came with an Editor is effectively a mirror of that, so any version after 2019.1 does NOT contain any API docs for uGUI (and in fact, even the installed non-API Manual pages are outdated and do not contain the changes discussed below).
    • The official documentation of the com.unity.ugui package only lists a single version, 1.0.0 (since there is no versioning...) - but that page is stuck in Jan 2019, and effectively has NEVER been updated, ever: https://docs.unity3d.com/Packages/com.unity.ugui@1.0/changelog/CHANGELOG.html
    We are currently in the process of upgrading a major project from 2019.4 - and much of our UI functionality suddenly broke and we are forced to debug+refactor it, and none of the internal changes to com.unity.ugui SINCE 2019.2 are documented anywhere, and nothing is mentioned in any of the Upgrade guides.

    As a concrete example, we use InputField.OnEndEdit callbacks to get updated of any external value changes to the field. When upgrading a test project from 2020.3 to 2021.3, any (Inspector!) callbacks attached to this event are silently moved/converted to the apparently new OnSubmit.
    But, as major parts of our UI are dynamically auto-generated, we have to explicitly invoke inputField.onEndEdit.Invoke(value) if the value gets changed externally.
    HOWEVER, as the associated callbacks have been moved to OnSubmit, invoking onEndEdit no longer calls any callbacks, breaking our functionality.

    Ignoring the time I spent debugging this, this particular change is relatively easy to fix - but I wonder how many other internal changes will break other parts of our application :-/

    And yes, I understand that the original "InputField" has been declared as "Legacy" since 2021 - but completely refactoring our app to use TMP instead is WAY more effort (due to the app's complexity I'd estimate a week for this, including thorough testing), and we are not prepared to do that.

    => could you please use proper package version numbers for your builtin packages?
    => could you please at the very least provide a current, up-to-date documentation for them - but ideally for all (LTS) Editor versions, so that we have a chance to compare them and check any functionality changes?

    Thanks,
    Wolfram
     
    Unifikation likes this.
  2. SimonDarksideJ

    SimonDarksideJ

    Joined:
    Jul 3, 2012
    Posts:
    1,689
    As far as I'm aware, V1 was the version created when the UI system was removed from the base editor, simply a cut from that point in time. Since then there have only been bugfixes (not including the non TXMeshPro components in 2022) and no further development as Unity "recommends" moving to UIBuilder.

    Sadly I don't think this is likely to change in the future. uGUI / Unity UI is effectively in maintenance mode only.
     
    Ryiah likes this.
  3. Unifikation

    Unifikation

    Joined:
    Jan 4, 2023
    Posts:
    1,085
    The documentation for TMP has always been lagged, to the point it was basically on the original site (outside Unity) for ages.

    This situation should be fixed, for exactly the reasons the OP is pointing out, and because UI Builder etc aren't nearly ready and might never replace some of the better features of TMP's world space abilities.