Search Unity

Official UI Update - Q1 2021

Discussion in 'UI Toolkit' started by benoitd_unity, Jan 22, 2021.

Thread Status:
Not open for further replies.
  1. benoitd_unity

    benoitd_unity

    Unity Technologies

    Joined:
    Jan 2, 2018
    Posts:
    331
    Hello everyone, we thought we should start the year with a short update on UI.

    First, a quick retrospective. Since July 2020, when we released our first version of the UI Toolkit preview package, we’ve received a lot of great feedback. We want to thank you all for trying out UI Toolkit, and most importantly, for taking the time to share your opinions and ideas, report issues, and share with everyone the UI projects you’ve been working on. Your feedback has been critical for helping us build a better product, and has been a great source of motivation for the team.

    Pushing the UI Toolkit Release
    Your feedback also made us realize that UI Toolkit was not meeting the quality level we wanted for Unity 2021.1. We’ve decided to move the release to 2021.2 to ensure that UI Toolkit meets expectations, and addresses a few more requirements such as interoperability with other systems, basic support for UI animation, and onboarding material. We also want to make sure it’s part of the Unity 2021.LTS version. If UI Toolkit meets your requirements at that point, you can safely start using it in production. Also a reminder that we advise against using the preview package for productions shipping on Unity 2020.

    Changing the UI Toolkit Release Strategy
    Another point worth bringing up is how we will release incremental updates of UI Toolkit in the future. In the coming weeks, we will release the last version of the UI Toolkit package ecosystem, which includes the UI systems and assets, the authoring tools and the text feature set. This version will only be compatible with 2020.2 and 2021.1. Starting from 2021.2, new features will strictly be available from the core product, and won’t be supported by the packages. This means the package versions will only include bug fixes and no new features. Bleeding edge versions of UI Toolkit will be accessible via Alpha and Beta releases of Unity. Delivering UI Toolkit as a package has been very helpful for gathering early feedback, but it adds a considerable amount of development overhead. We would rather invest that time in improving the toolkit itself.

    Once again, thank you for your continued support.
     
  2. MousePods

    MousePods

    Joined:
    Jul 19, 2012
    Posts:
    811
    Thanks for all the hard work! I really enjoy using this tool.

    I just have a quick question with everything being pushed back. I know I asked this before but that was before this recent push back. Do you know the state/tentative release date of this feature?

    3D/2D game objects with particle systems/trail renderers attached that are able to be placed in a scrollview or any UI with the ability for masking to work. Think a shop where I can show all of the items you can purchase and equip in game.

    Thanks!!
     
  3. Baste

    Baste

    Joined:
    Jan 24, 2013
    Posts:
    6,338
    Generally in favour of this! UI Toolkit is at it's core a great idea, and when it works it works great, but there are for sure things missing, and some bad bugs.

    For us, the worst part is for sure the UI Builder. You kinda only have to try to make something simple for it to start losing data, throwing exceptions, and hitting obvious pain points. It's at a point where I feel like it's so obviously broken that I don't want to submit bug reports, because I could probably literally spend an entire work week doing it.

    Again, the Builder is great when it works, but that's seldom and only for 5 minutes at a time. I've reverted from building stuff in uxml to building in C# numerous times because using the builder was just to painful.


    Also;
    What? If you push it out in a not ready state for 2021.1, it'll for sure be in 2021.LTS, so I'm not quite sure how postponing it would help on that front. I'd much prefer it if you fixed all the current features and didn't implement any new ones, in order to get it ready for a 2021.1 release, and then held off on all the other features for 2021.2. The alternative is that there's a real danger for us that it slips to 2022.LTS, and that'd be bad for everyone. I really, really, really don't want to have to ship another game on RectTransforms, they make me angry and sad whenever I have to touch them.
     
  4. I'm rarely willing to go there, but I'm totally agree with @Baste on every point he made.

    Ranting, rumbling highly opinionated blob of text:

    I spent only two weeks with UI Toolkit and UI Builder. I restarted the whole thing 2 times, I restarted Unity countless times and even more close UI Builder-reopen UI Builder.
    And I have a basic, standard main menu with white boxes on my hand, nothing fluffy or interesting.
    As an experienced ex-web developer I could write this in the source code in an hour or so (I didn't want to, checking the tools and all). But then I don't see what I'm doing (although many times I can't see it in the UI Builder as well).

    Also, even when it works, it shows that it was made for building inspector windows. The verticality of the entire tool is painful. Did anyone try to build a UI in HD-reference resolution in it from the team? Desperately in need of panning and zooming in the viewing area. And not changing the size of the document on changing the viewport size... and all that.

    My advice in this matter is, just talk to the teams who made the ProGrid and ProBuilder tools. They recognized that every bit of the working area is measured in gold. And also, it's a tool, it doesn't need to update everything automatically. Unity Editor is struggling as it is, the more data-binding you introduce the worse it gets. Pressing enter in order to update data is perfectly acceptable way.

    Also if you want to make a visual tool, make a visual tool. Making easy to change the sizes, positions and all in the viewport will be the good way to go. Again, see ProBuilder.
     
    ModLunar likes this.
  5. adammpolak

    adammpolak

    Joined:
    Sep 9, 2018
    Posts:
    450
    Love UI Toolkit, love UI Builder, keep it up!
     
    ModLunar, Kirsche and MousePods like this.
  6. Chris-Trueman

    Chris-Trueman

    Joined:
    Oct 10, 2014
    Posts:
    1,261
    I like the idea of UITK coupled with UIBuilder. The fact that it is decoupled from the whole GameObject/MonoBehaviour system gives more flexability. Makes making custom editors and editor windows easy compared to the old system. It doesn't fill up the hierarchy like uGUI, performs better and has some great built in ways to style the elements and reuse that styling.

    The bad is the growing pains.(ranting starts now)

    I'll go with UIBuilder first:
    It is inconsistent from the rest of the editor, ctrl+alt left click to pan, alt+right click left/right to zoom?

    Buggy, error prone and hard to create custom elements with editable values. If you guys can have a Texture, Vector2, etc field in there why can't we, why does it have to be a text field?

    If I close it without saving, that means I want to discard the changes I'm not longer editing the uxml. Right now it stays in memory like I still have it open, so when I go to close unity it asks me if I want to discard something that isn't being edited right now. I have to agree with @Baste and @Lurking-Ninja on their points about it as well.

    Now for UITK:
    Some questionable API functionality namely the inconsistent and complex event system. Why ChangeEvent<T>, RegisterValueChangedCallback, RegisterCallback, and traditional events with += to register, this needs to be simplified and stick to one paradigm. It's confusing and frustrating to say the least.

    Inconsistencies between the editor and runtime. The docs for drag and drop only work for the editor and not at runtime in fact there is no built in drag and drop for runtime.

    The incompatibility between runtime package and UIBuilder. All the new text features can be used with UIBuilder and 2021.1, but currently UITK runtime is not compatible with 2021.1. Sure I can edit the uss files in 2020.2 but UIBuilder tends to overwrite them and then they somehow stop working until I manually edit the uss again.


    That last part is, I hope, the main reason to limit how often it gets updated and what its compatible with. Consistency is very key, and I feel that with UITK you guys aren't being consistent developing it. I hope the changes being made will circumvent that.
     
    JohannesMP and benoitd_unity like this.
  7. benoitd_unity

    benoitd_unity

    Unity Technologies

    Joined:
    Jan 2, 2018
    Posts:
    331
    That's more or less what I'm saying. We're improving what we wanted to release for 2021.1 to instead release it in 2021.2. The only feature being added is simple UI animation, which we believe is crucial for making engaging and usable UI. The remaining efforts will be focused on stabilization, interoperability, documentation and usability.

    By releasing in 2021.2, it will be part of the 2021 LTS cycle.
     
    ModLunar, Sylmerria, NotaNaN and 4 others like this.
  8. adammpolak

    adammpolak

    Joined:
    Sep 9, 2018
    Posts:
    450
    Nice!
     
  9. adammpolak

    adammpolak

    Joined:
    Sep 9, 2018
    Posts:
    450
    Is UI Toolkit/UI Builder working easily on mobile a priority or is the bigger focus for this next release desktop?
     
  10. benoitd_unity

    benoitd_unity

    Unity Technologies

    Joined:
    Jan 2, 2018
    Posts:
    331
    For this release, the focus is on Mobile and Desktop screen overlay UI
     
    ModLunar and adammpolak like this.
  11. sebastiend-unity

    sebastiend-unity

    Unity Technologies

    Joined:
    Nov 9, 2015
    Posts:
    184
    Thanks for the feedback guys. Lurking-Ninja can you tell me more about your setup? Which version of the editor, UI Toolkit and UI Builder package versions, what your document looks like, etc. We have not experienced that kind of instability in our test or dev environments, so any detail is appreciated. If you have a project you can share as well, we can try to repro with higher fidelity.
     
    ModLunar likes this.
  12. Refeas

    Refeas

    Joined:
    Nov 8, 2016
    Posts:
    192
    So, do I get it right that UITK (+ Builder) package will receive a last feature update soon-ish and then still receive bugfixes until 2021.2 is out? And will only work with 2020.2+? Meaning if I stick with 2020.2 or 2021.1 for now, I will still receive maintenance updates for the package(s)? Thanks.
     
  13. CabinIcarus

    CabinIcarus

    Joined:
    May 24, 2017
    Posts:
    72
    When is the next update expected?
     
  14. Normally I work in 2020.2.1, Now it is 2020.2.2f1. But since I wrote that rant I downloaded the 2021.1 too and I edit my UI in that and that seems to be more stable. I just copy back the uxml and uss into my project in the 2020.
    But I'll get back to 2020 and see if I can reproduce those behavior again, will get back to you with bug reports if I find them again.
     
    ModLunar likes this.
  15. ShadowAngel

    ShadowAngel

    Joined:
    Aug 7, 2012
    Posts:
    12
    Same problems here: Unity 2020.2.1f1 - UIToolkit preview 13 - UIBuilder preview 12
    Using only what is available in UIBuilder. Nothing fancy. Just normal VisualElement in VisualElement kind a setup.
    Problems start when i try to rearrange elements in builder. Element just disappear without errors. And if i reload Ui Document it will appear as root child.
    Second problem, just by clicking on element RowPrefab (see UXML) i'm getting
    ArgumentException: Value is not present in the list of possible values
    UnityEditor.UIElements.PopupField`1[T].SetValueWithoutNotify (T newValue) (at Library/PackageCache/com.unity.ui@1.0.0-preview.13/Editor/Controls/PopupField.cs:73)
    Unity.UI.Builder.MultiTypeField.SetTypePopupValueWithoutNotify (System.Type type) (at Library/PackageCache/com.unity.ui.builder@1.0.0-preview.12/Editor/Utilities/MultiTypeField/MultiTypeField.cs:83)
    Unity.UI.Builder.BuilderInspectorStyleFields.RefreshStyleField (System.String styleName, UnityEngine.UIElements.VisualElement fieldElement) (at Library/PackageCache/com.unity.ui.builder@1.0.0-preview.12/Editor/Builder/Inspector/BuilderInspectorStyleFields.cs:724)
    Unity.UI.Builder.BuilderInspectorLocalStyles.Refresh () (at Library/PackageCache/com.unity.ui.builder@1.0.0-preview.12/Editor/Builder/Inspector/BuilderInspectorLocalStyles.cs:173)
    Unity.UI.Builder.BuilderInspector.RefreshUI () (at Library/PackageCache/com.unity.ui.builder@1.0.0-preview.12/Editor/Builder/Inspector/BuilderInspector.cs:470)
    Unity.UI.Builder.BuilderInspector.SelectionChanged () (at Library/PackageCache/com.unity.ui.builder@1.0.0-preview.12/Editor/Builder/Inspector/BuilderInspector.cs:517)
    Unity.UI.Builder.BuilderSelection.NotifyOfSelectionChange (Unity.UI.Builder.IBuilderSelectionNotifier source) (at Library/PackageCache/com.unity.ui.builder@1.0.0-preview.12/Editor/Builder/BuilderSelection.cs:292)
    Unity.UI.Builder.BuilderSelection.AddToSelection (Unity.UI.Builder.IBuilderSelectionNotifier source, UnityEngine.UIElements.VisualElement ve, System.Boolean undo, System.Boolean sort) (at Library/PackageCache/com.unity.ui.builder@1.0.0-preview.12/Editor/Builder/BuilderSelection.cs:187)
    Unity.UI.Builder.BuilderSelection.AddToSelection (Unity.UI.Builder.IBuilderSelectionNotifier source, UnityEngine.UIElements.VisualElement ve) (at Library/PackageCache/com.unity.ui.builder@1.0.0-preview.12/Editor/Builder/BuilderSelection.cs:171)
    Unity.UI.Builder.BuilderExplorer.ElementSelectionChanged (System.Collections.Generic.List`1[T] elements) (at Library/PackageCache/com.unity.ui.builder@1.0.0-preview.12/Editor/Builder/Explorer/BuilderExplorer.cs:139)
    Unity.UI.Builder.ElementHierarchyView.OnSelectionChange (System.Collections.Generic.IEnumerable`1[T] items) (at Library/PackageCache/com.unity.ui.builder@1.0.0-preview.12/Editor/Utilities/ElementHierarchyView/ElementHierarchyView.cs:545)
    UnityEngine.UIElements.TreeView.OnSelectionChange (System.Collections.Generic.IEnumerable`1[T] selectedListItems) (at Library/PackageCache/com.unity.ui@1.0.0-preview.13/Core/Controls/TreeView.cs:453)
    UnityEngine.UIElements.ListView.NotifyOfSelectionChange () (at Library/PackageCache/com.unity.ui@1.0.0-preview.13/Core/Controls/ListView.cs:1270)
    UnityEngine.UIElements.ListView.SetSelectionInternal (System.Collections.Generic.IEnumerable`1[T] indices, System.Boolean sendNotification) (at Library/PackageCache/com.unity.ui@1.0.0-preview.13/Core/Controls/ListView.cs:1260)
    UnityEngine.UIElements.ListView.SetSelection (System.Collections.Generic.IEnumerable`1[T] indices) (at Library/PackageCache/com.unity.ui@1.0.0-preview.13/Core/Controls/ListView.cs:1238)
    UnityEngine.UIElements.ListView.SetSelection (System.Int32 index) (at Library/PackageCache/com.unity.ui@1.0.0-preview.13/Core/Controls/ListView.cs:1229)
    UnityEngine.UIElements.ListView.DoSelect (UnityEngine.Vector2 localPosition, System.Int32 clickCount, System.Boolean actionKey, System.Boolean shiftKey) (at Library/PackageCache/com.unity.ui@1.0.0-preview.13/Core/Controls/ListView.cs:1068)
    UnityEngine.UIElements.ListView.OnPointerDown (UnityEngine.UIElements.PointerDownEvent evt) (at Library/PackageCache/com.unity.ui@1.0.0-preview.13/Core/Controls/ListView.cs:988)
    UnityEngine.UIElements.EventCallbackFunctor`1[TEventType].Invoke (UnityEngine.UIElements.EventBase evt) (at Library/PackageCache/com.unity.ui@1.0.0-preview.13/Core/Events/EventCallback.cs:64)
    UnityEngine.UIElements.EventCallbackRegistry.InvokeCallbacks (UnityEngine.UIElements.EventBase evt) (at Library/PackageCache/com.unity.ui@1.0.0-preview.13/Core/Events/EventCallbackRegistry.cs:341)
    UnityEngine.UIElements.CallbackEventHandler.HandleEvent (UnityEngine.UIElements.EventBase evt) (at Library/PackageCache/com.unity.ui@1.0.0-preview.13/Core/Events/EventHandler.cs:147)
    UnityEngine.UIElements.EventDispatchUtilities.PropagateEvent (UnityEngine.UIElements.EventBase evt) (at Library/PackageCache/com.unity.ui@1.0.0-preview.13/Core/Events/IEventDispatchingStrategy.cs:147)
    UnityEngine.UIElements.PointerEventDispatchingStrategy.SendEventToTarget (UnityEngine.UIElements.EventBase evt) (at Library/PackageCache/com.unity.ui@1.0.0-preview.13/Core/Events/PointerEventDispatchingStrategy.cs:21)
    UnityEngine.UIElements.PointerEventDispatchingStrategy.DispatchEvent (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel) (at Library/PackageCache/com.unity.ui@1.0.0-preview.13/Core/Events/PointerEventDispatchingStrategy.cs:13)
    UnityEngine.UIElements.EventDispatcher.ApplyDispatchingStrategies (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel, System.Boolean imguiEventIsInitiallyUsed) (at Library/PackageCache/com.unity.ui@1.0.0-preview.13/Core/EventDispatcher.cs:373)
    UnityEngine.UIElements.EventDispatcher.ProcessEvent (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel) (at Library/PackageCache/com.unity.ui@1.0.0-preview.13/Core/EventDispatcher.cs:336)
    UnityEngine.UIElements.EventDispatcher.Dispatch (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel, UnityEngine.UIElements.DispatchMode dispatchMode) (at Library/PackageCache/com.unity.ui@1.0.0-preview.13/Core/EventDispatcher.cs:216)
    UnityEngine.UIElements.BaseVisualElementPanel.SendEvent (UnityEngine.UIElements.EventBase e, UnityEngine.UIElements.DispatchMode dispatchMode) (at Library/PackageCache/com.unity.ui@1.0.0-preview.13/Core/Panel.cs:411)
    UnityEngine.UIElements.UIElementsUtility.DoDispatch (UnityEngine.UIElements.BaseVisualElementPanel panel) (at Library/PackageCache/com.unity.ui@1.0.0-preview.13/Core/UIElementsUtility.cs:466)
    UnityEngine.UIElements.UIElementsUtility.UnityEngine.UIElements.IUIElementsUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr, System.Boolean& eventHandled) (at Library/PackageCache/com.unity.ui@1.0.0-preview.13/Core/UIElementsUtility.cs:209)
    UnityEngine.UIElements.UIEventRegistration.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr) (at Library/PackageCache/com.unity.ui@1.0.0-preview.13/Core/UIElementsUtility.cs:74)
    UnityEngine.UIElements.UIEventRegistration+<>c.<.cctor>b__1_2 (System.Int32 i, System.IntPtr ptr) (at Library/PackageCache/com.unity.ui@1.0.0-preview.13/Core/UIElementsUtility.cs:28)
    UnityEngine.GUIUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr, System.Boolean& result) (at /Users/bokken/buildslave/unity/build/Modules/IMGUI/GUIUtility.cs:189)
    Third all my buttons are grey inside the builder. But in scene and runtime they are fine.

    Here is UXML

    Also sometimes builder display will go crazy after saving document. I need to restart it to get it back in normal.
    Accessing invalid property
    UnityEngine.GUIUtility:processEvent (int,intptr,bool&) (at /Users/bokken/buildslave/unity/build/Modules/IMGUI/GUIUtility.cs:189)
     
    Last edited: Jan 28, 2021
  16. SonicBloomEric

    SonicBloomEric

    Joined:
    Sep 11, 2014
    Posts:
    1,090
    Where are the efforts to improve documentation going to be visible during the remaining time before release?

    I've been checking the main documentation for years now and have not seen any substantive changes, though your team has repeatedly stated "we are aware of the documentation shortcomings and are working on it." Am I missing something or is there a place where we can actually see the fruits of that effort?

    As far as I can tell, the only way to get information on how to use modern UIToolkit properly is to scour these forums and look for places where people have rammed into the same wall that you have and either worked out the solution here or had someone from the UIToolkit team gracefully bless them with an answer.

    I think it would be very valuable for you to provide access to prerelease documentation and ask for feedback so that us lowly users can help you cover any remaining deficiencies as found by people who aren't intimately familiar with the inner workings of the entire system.
     
  17. sebastiend-unity

    sebastiend-unity

    Unity Technologies

    Joined:
    Nov 9, 2015
    Posts:
    184
    Good news for the PopupField error you are getting, I am pushing a fix for that specifically, a bug report was already submitted :)

    Sebastien
     
    ModLunar and ShadowAngel like this.
  18. sebastiend-unity

    sebastiend-unity

    Unity Technologies

    Joined:
    Nov 9, 2015
    Posts:
    184
    Thank you LN. Eagerly awaiting :)

    Sebastien
     
  19. benoitd_unity

    benoitd_unity

    Unity Technologies

    Joined:
    Jan 2, 2018
    Posts:
    331
    Yes that's correct. It's worth stating that even though we don't officially support experimental packages, we will do our very best to backport bug fixes to the package version of UI Toolkit.
     
  20. benoitd_unity

    benoitd_unity

    Unity Technologies

    Joined:
    Jan 2, 2018
    Posts:
    331
    That's a great point. Let me see what we can do about that.
     
    tonycoculuzzi and SonicBloomEric like this.
  21. Timboc

    Timboc

    Joined:
    Jun 22, 2015
    Posts:
    238
    Just wanted to add my take on what I personally think should be high on the team's list:

    - UI Builder still has pretty bad bugs related to the zoom of the canvas and/or number of items in the hierarchy e.g. reordering elements, (similar to this https://forum.unity.com/threads/ui-...lements-into-hierarchy-when-zoomed-in.893827/ ) - I'm not sure why these things are coupled in the first place?

    - UI Builder - a very odd bug that's hard to reliably reproduce - sometimes if you close builder/unity and don't save changes, it will actually revert some changes that you had saved that session. It's happened enough times that I know this isn't me not saving. I also ctrl+s twice in the UI builder (once for uxml, second for uss) which I'm not sure is a bug either.

    - UI Builder - sometimes dragging a style onto an element doesn't work. These kind of details build to an impression that the team hasn't really tried building and maintaining something with any level of complexity with the tool. Especially as all these issues are computer, OS & Unity version independent and have been around for a year or so. Would it be possible to add half an hr per month or something to work with modifying an example complex UI and get a feel for the issues yourselves?

    Otherwise I've had a pretty solid experience with UI Builder and I certainly find it a very useful tool! Really nice way to work imo.

    - Esp for Asset store publishers, finding e.g. USS files relative paths is a bit of a pain. I currently do it by finding relative to asmdef but I'd like to see a standardised/recommend approach or else I think we can expect assets on the store to start reverting to being more hard to move around. Which would be a big shame.

    - Consistency between editor & runtime. I'm sure this is already high on your priority list in terms of functionality, but I also think it's not too late to make some styling more consistent. e.g. Foldouts. On that note, if you try to change the icon of a foldout you get some pretty obscure errors if you have the @2x variant at the same path. I understand it isn't supported but a more useful error to remove that asset would be good.

    Nice to haves:
    - World space / VR workflow
    - This bug (that I've been too lazy to file properly) https://forum.unity.com/threads/showasdropdown-right-click-not-working-2020.975909/
    - Some more user-friendly api for working with MeshGenerationContext would be ace

    Thank you for the teams continuing hard work and in particular, communication.
     
    Hideki_Koike likes this.
  22. tonycoculuzzi

    tonycoculuzzi

    Joined:
    Jun 2, 2011
    Posts:
    301
    I posted my thoughts here: https://forum.unity.com/threads/ran...is-a-confusing-unintuitive-black-box.1048106/


    In summary:

    I think the current state of UI Toolkit is great, but Binding is confusing as heck. Like others have mentioned, the overall systems are great, but when it doesn't work it really doesn't work and I'm convinced that has a lot to do with the black-box nature of a lot of it. For me, the binding system seems to be the worst part and I think it'll stop people from using this in production.
     
  23. Guedez

    Guedez

    Joined:
    Jun 1, 2012
    Posts:
    827
  24. benoitd_unity

    benoitd_unity

    Unity Technologies

    Joined:
    Jan 2, 2018
    Posts:
    331
    There's a larger conversation currently happening at Unity regarding code sharing with the community. Once we settle on a global strategy, we should be able to provide access to source code again.
     
    ModLunar, cultureulterior and bdovaz like this.
  25. JoNax97

    JoNax97

    Joined:
    Feb 4, 2016
    Posts:
    611
    I fear the implications of this. I hope I'm wrong, but thing like this comment and the recent graphics repository move are worrying.

    3 years ago you guys announced packages with a grand vision of open development and community involvement, and that promise has done nothing but shrink and fade over time.
     
  26. EmKay

    EmKay

    Joined:
    Dec 12, 2012
    Posts:
    2
    Try this link instead to check the documentation. There is a dropdown to change the version in the upper left corner. It could look like the only the documentation being updated is for the latest few versions of Unity.
    I am using 2020.2 and there are more info on that version of the docs than the one you were linking to.
     
  27. SonicBloomEric

    SonicBloomEric

    Joined:
    Sep 11, 2014
    Posts:
    1,090
    Can you link to a specific page that has that extra information? I've been poking around, comparing the page I linked to the one you did on a side-by-side basis and they have so far been identical.
     
  28. SonicBloomEric

    SonicBloomEric

    Joined:
    Sep 11, 2014
    Posts:
    1,090
    I did a quick scan and answered my own question. Between 2019.1 and 2020.2 I've found the following changes:
    That's all well and good, but the existing documentation has been out of date and/or incomplete for years now. That is what I'm referring to.
     
  29. AndrewKaninchen

    AndrewKaninchen

    Joined:
    Oct 30, 2016
    Posts:
    149
    Yeah...I kind of have the same worry. Anything less than full open-source for this kind of thing is a veeeery big shot in the foot for software of this level of extensibility. I thought Unity learned this lesson and was moving towards more open-source for this reason, but if discussion around this is happening now, shortly after their IPO...makes me a bit worried, I guess.

    Let's hope it's just about something like a unified way of sharing said code, or something like that, instead of a discussion of if they will go back in their word and not share most of the code at all anymore.
     
    Elringus, NotaNaN, Neonage and 2 others like this.
  30. Muchaszewski

    Muchaszewski

    Joined:
    Sep 23, 2015
    Posts:
    15
    My current thoughts are almost identical to what people mentioned in the posts above, with few more points.

    1. Currently UIBuilder is almost impossible to extend (like 99% of Unity plugins and engine content). It's extremely annoying that the core of the functionalities "internal" instead of public and we need to fallback to reflection for Editor or copy-pasting something that was written for internals.
    - Want to add a new Style property? Internal.
    - Want to expand the current well-written VisualElement? Internal.
    - Want to expand rendering to add eg: soft-shadows? Internal!
    - Want to ... you get the point, it's all internal.

    2. Missing a lot of CSS keywords - if you want to insist on being friendly for HTML/CSS programmers you need to expand CSS properties to cover at least 90-95% of what currently web engines offer.

    3. SASS/LESS - As you could probably notice there is a huge shift from plane CSS to "smarter" solutions like SASS or LESS, without such support anything more complex would be like using time-machine to the 90'.

    4. Basic blocks - Currently all basic building blocks (including editor only) are created with a single mindset "we want to recreate the current editor".
    upload_2021-2-8_16-19-42.png
    So if you want to have a single checkbox to use for your project or foldout that is flexible in the header, you need to use hacks with ucss to disable the label which is not very efficient or create everything from scratch (see point 1.)


    I would love it if you could fix all of those issues and include feedback from the community before EOY and make it production-ready. But I do not see this happening with the current progress and focus :(
     
    Roni92pl, ModLunar, RKar and 8 others like this.
  31. benoitd_unity

    benoitd_unity

    Unity Technologies

    Joined:
    Jan 2, 2018
    Posts:
    331
    Hi Muchaszewski, that's great feedback thanks for sharing.

    It's in our plans to improve extensibility once we release. The examples you provided are on point.
    Do you have any specific ones that you believe should be important to support?
     
    ModLunar, RKar and NotaNaN like this.
  32. Muchaszewski

    Muchaszewski

    Joined:
    Sep 23, 2015
    Posts:
    15
    Thanks, Benoitd for acknowledging the issues,

    It saddens me that this is not the first principle in Unity as Organization, as the extensibility of a Game Engine is the most important thing for its customers and it's in the definition of the Game Engine itself!

    If you enter this page https://developer.mozilla.org/en-US/docs/Web/CSS/Reference you will see all CSS styles possible to use in web development, and I would consider almost all of them having a use-case and would consider them being important (except for deprecated ones).

    I can write down all the important ones, but this would be a pervasive list as Unity UCSS is a pretty poor subset at this moment, but to mention a few:

    - z-index
    - drop-shadow, text-shadow, etc...
    - shapes like: ellipse()
    - grid subset
    - animation subset
    - filter
    - scroll-behavior
    - box-sizing
    - many more...
    - and as a separate point, all existing properties do not have all properties subset like for text: text-decoration is not always used but it's part of CSS, and not supporting it seems like lost opportunity for a new tool that claims to be HTML/CSS friendly...
     
    ModLunar, RKar and bdovaz like this.
  33. SonicBloomEric

    SonicBloomEric

    Joined:
    Sep 11, 2014
    Posts:
    1,090
    If they actually suggest this anywhere (i.e. as "HTML/CSS friendly"), then they should be extra careful to start messaging it as "HTML/CSS inspired" instead.
     
  34. benoitd_unity

    benoitd_unity

    Unity Technologies

    Joined:
    Jan 2, 2018
    Posts:
    331
    I understand your point. We could have waited to release it until it's fully extensible but that would have meant more delays. We took the decision to release it in its current state with the conviction it would still be of value for a lot of people.
    That's a good point. As per the Unity Manual:
    What that means is we do not intend for UI Toolkit to replicate HTML/CSS. We also get inspiration from WPF or any other technology that solves an existing problem that works well in our context.

    Regarding supporting more CSS properties, this is something we'll continuously do, when it aligns with our goals for the product.
     
  35. broots

    broots

    Joined:
    Dec 20, 2019
    Posts:
    54
    Having used the system for about a year now, there's two things I'd really like to see:

    !important -- See here: https://forum.unity.com/threads/css-appears-to-ignore-important-is-this-intended.1054511/
    -Why does this matter? In some places, the unity styles have higher priority than a typical class selector will override. You have to provide very specific CSS rules that are very much not optimal in some places. I understand !important is a very much a double-edged sword but I think in the current implementation there's places where the alternative (I have one particular CSS file of almost 500 lines of selectors because I couldn't override one .class selector) is worse I think.

    Z-ordering, depth, or something in that vein.
    -Why does this matter? I think this is one of the contexts that web applications and games simply exist in different worlds. The requirements games have for interactions is often very specific and I think providing (designers) with the highest granularity possible to control user supplied I/O and the I/O transmission path into the game ecosystem is something I'd like to see prioritized.

    Cheers,
    Z.
     
  36. bdovaz

    bdovaz

    Joined:
    Dec 10, 2011
    Posts:
    1,053
    o_O

    And ours?
     
    ModLunar likes this.
  37. Muchaszewski

    Muchaszewski

    Joined:
    Sep 23, 2015
    Posts:
    15
    This is not just a matter of more delays to make it more extendable - it's 10 minutes of your time to Find all "internal" and replace it with "public", and the community would be fine with that as far as my team is concerned. As if the method should be virtual or not, this could be easily solved via this forum with specific community requests. We don't need extensive documentation, or detailed use-cases for what's currently internal, we just ask for this one simple fix you all of your codebase so we can use it as a proper tool that we can expand and work with...
     
  38. JoNax97

    JoNax97

    Joined:
    Feb 4, 2016
    Posts:
    611
    It's never that simple. Every method they mark as public becomes public API and is subject to retrocompatibility, documentation, usage concerns, etc.

    I understand your needs for extensibility but for Unity, exposing too much too fast can become a liability
     
  39. benoitd_unity

    benoitd_unity

    Unity Technologies

    Joined:
    Jan 2, 2018
    Posts:
    331
    Our goal is that you are successful using the product so yes, I'm right there with you :)
     
  40. dannyalgorithmic

    dannyalgorithmic

    Joined:
    Jul 22, 2018
    Posts:
    100
    Interactable world space UI?
     
  41. benoitd_unity

    benoitd_unity

    Unity Technologies

    Joined:
    Jan 2, 2018
    Posts:
    331
    Not planned for this release.
     
    Hideki_Koike likes this.
  42. dujimache

    dujimache

    Joined:
    Dec 17, 2011
    Posts:
    89
    will the next release support TMP Sprite Asset???
     
  43. antoine-unity

    antoine-unity

    Unity Technologies

    Joined:
    Sep 10, 2015
    Posts:
    780
  44. Hi! Hope it is better later than never...
    So today I pulled up Unity 2020.2.6f1, installed the UI Builder and the com.unity.ui package as well and then tried to make something simple. At least the zoom and the panning worked this time and the canvas didn't resize itself and the rendering remained intact. The funny thing is: after the recording, it started working. It either knows that it will be posted online or ALT-F9 does something magical (shortcut for Nvidia recording). The part where it is flashing a bit where I hit CTRL-S. After that the label moves back to the initial position.
    Also duplicate on the style-section doesn't work if the entry is id (#bla).

    Unity 2020.2.6f1
    UI Builder: 1.0.0-preview.12
    UI Toolkit: 1.0.0-preview.14

     
  45. Nox_A15

    Nox_A15

    Joined:
    Jan 11, 2014
    Posts:
    3
    Hello, did you have any issues installing UI Toolkit on Unity 2020.2.6f1? I'm currently trying to make it work on a fresh project and UI Builder package installs without a problem, but installing UI Toolkit causes a lot of errors.

    Bug_1.jpg

    After that, every time I click on UXML's root in UI Builder, I get another error.

    Bug_2.jpg

    Am I doing something wrong? In Unity 2020.2.5f1 everything worked fine.
     
  46. Probably not. I'm getting these errors, but I didn't get them right out of the gate after installation. Also sometimes Unity just refuses to recognize UXML, double click brings up the file association application selector in Windows.
     
  47. Nox_A15

    Nox_A15

    Joined:
    Jan 11, 2014
    Posts:
    3
    I see. Thank you for confirmation.
     
  48. Digika

    Digika

    Joined:
    Jan 7, 2018
    Posts:
    225
    Can I get some clarification here. So the last package-form release with features (i.e. feature release and not just bugfix update; I assume it will be preview15) will require 2020.2 MINIMUM. So, essentially, 2020.2 becomes lowest minimum version for the package release. The rest new features will come with new Unity version, but the package will continue updating with fixes, correct?
     
  49. dujimache

    dujimache

    Joined:
    Dec 17, 2011
    Posts:
    89
  50. benoitd_unity

    benoitd_unity

    Unity Technologies

    Joined:
    Jan 2, 2018
    Posts:
    331
    Yes that's correct.
     
Thread Status:
Not open for further replies.