Search Unity

Question UXML/StyleSheet import errors after upgrading to 2020.1.2

Discussion in 'UI Toolkit' started by HrabiaWrzontq, Aug 13, 2020.

  1. HrabiaWrzontq

    HrabiaWrzontq

    Joined:
    Nov 28, 2016
    Posts:
    16
    Hello there,

    I've just upgraded my project to Unity 2020.1.2 from 2020.1.1 and one of my UXML files stopped working. I had recreated it but Unity was unable to save it, showing the same errors. I think it might be some issue with my USS.

    Could someone please take a look at my files and tell me whether I'm doing something wrong or is there a bug in new Unity version?

    Here's the error:
    Code (CSharp):
    1. Asset import failed, "Assets/_UI - Builder/ToolMenu/v1/Layouts (uxml)/ToolMenuPanel.uxml" > TypeLoadException: Could not resolve type with token 010003fa (from typeref, class/assembly UnityEngine.UIElements.TextDelegates, UnityEngine, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null)
    2. UnityEditor.StyleSheets.StyleValueImporter.VisitUrlFunction (ExCSS.PrimitiveTerm term) (at <d1bec46880064709a5e713ad543e6d96>:0)
    3. UnityEditor.StyleSheets.StyleValueImporter.VisitValue (ExCSS.Term term) (at <d1bec46880064709a5e713ad543e6d96>:0)
    4. UnityEditor.UIElements.UXMLImporterImpl.ParseAttributes (System.Xml.Linq.XElement elt, UnityEngine.UIElements.VisualElementAsset res, UnityEngine.UIElements.VisualTreeAsset vta, UnityEngine.UIElements.VisualElementAsset parent) (at <d1bec46880064709a5e713ad543e6d96>:0)
    5. UnityEditor.UIElements.UXMLImporterImpl.LoadXml (System.Xml.Linq.XElement elt, UnityEngine.UIElements.VisualElementAsset parent, UnityEngine.UIElements.VisualTreeAsset vta, System.Int32 orderInDocument) (at <d1bec46880064709a5e713ad543e6d96>:0)
    6. UnityEditor.UIElements.UXMLImporterImpl.LoadXml (System.Xml.Linq.XElement elt, UnityEngine.UIElements.VisualElementAsset parent, UnityEngine.UIElements.VisualTreeAsset vta, System.Int32 orderInDocument) (at <d1bec46880064709a5e713ad543e6d96>:0)
    7. UnityEditor.UIElements.UXMLImporterImpl.LoadXml (System.Xml.Linq.XElement elt, UnityEngine.UIElements.VisualElementAsset parent, UnityEngine.UIElements.VisualTreeAsset vta, System.Int32 orderInDocument) (at <d1bec46880064709a5e713ad543e6d96>:0)
    8. UnityEditor.UIElements.UXMLImporterImpl.LoadXml (System.Xml.Linq.XElement elt, UnityEngine.UIElements.VisualElementAsset parent, UnityEngine.UIElements.VisualTreeAsset vta, System.Int32 orderInDocument) (at <d1bec46880064709a5e713ad543e6d96>:0)
    9. UnityEditor.UIElements.UXMLImporterImpl.LoadXmlRoot (System.Xml.Linq.XDocument doc, UnityEngine.UIElements.VisualTreeAsset vta) (at <d1bec46880064709a5e713ad543e6d96>:0)
    10. UnityEditor.UIElements.UXMLImporterImpl.ImportXml (System.String xmlPath, UnityEngine.UIElements.VisualTreeAsset& vta) (at <d1bec46880064709a5e713ad543e6d96>:0)
    11. UnityEditor.UIElements.UXMLImporterImpl.Import (UnityEngine.UIElements.VisualTreeAsset& asset) (at <d1bec46880064709a5e713ad543e6d96>:0)
    12. UnityEditor.UIElements.UIElementsViewImporter.OnImportAsset (UnityEditor.Experimental.AssetImporters.AssetImportContext args) (at <d1bec46880064709a5e713ad543e6d96>:0)
    13. UnityEditor.Experimental.AssetImporters.ScriptedImporter.GenerateAssetData (UnityEditor.Experimental.AssetImporters.AssetImportContext ctx) (at <d1bec46880064709a5e713ad543e6d96>:0)
    14. UnityEditor.AssetDatabase:Refresh()
    15. Unity.UI.Builder.BuilderDocumentOpenUXML:SaveNewDocument(VisualElement, Boolean, Boolean&, String) (at Library/PackageCache/com.unity.ui.builder@1.0.0-preview.3/Editor/Builder/Document/BuilderDocumentOpenUXML.cs:384)
    16. Unity.UI.Builder.BuilderDocument:SaveNewDocument(VisualElement, Boolean, Boolean&, String) (at Library/PackageCache/com.unity.ui.builder@1.0.0-preview.3/Editor/Builder/Document/BuilderDocument.cs:254)
    17. Unity.UI.Builder.BuilderToolbar:SaveDocument(Boolean) (at Library/PackageCache/com.unity.ui.builder@1.0.0-preview.3/Editor/Builder/Toolbar/BuilderToolbar.cs:267)
    18. Unity.UI.Builder.BuilderCommandHandler:OnSaveDocument(KeyUpEvent) (at Library/PackageCache/com.unity.ui.builder@1.0.0-preview.3/Editor/Builder/Utilities/BuilderCommandHandler.cs:147)
    19. UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr, Boolean&)
    20.  
    21. UnityEditor.AssetDatabase:Refresh()
    22. Unity.UI.Builder.BuilderDocumentOpenUXML:SaveNewDocument(VisualElement, Boolean, Boolean&, String) (at Library/PackageCache/com.unity.ui.builder@1.0.0-preview.3/Editor/Builder/Document/BuilderDocumentOpenUXML.cs:384)
    23. Unity.UI.Builder.BuilderDocument:SaveNewDocument(VisualElement, Boolean, Boolean&, String) (at Library/PackageCache/com.unity.ui.builder@1.0.0-preview.3/Editor/Builder/Document/BuilderDocument.cs:254)
    24. Unity.UI.Builder.BuilderToolbar:SaveDocument(Boolean) (at Library/PackageCache/com.unity.ui.builder@1.0.0-preview.3/Editor/Builder/Toolbar/BuilderToolbar.cs:267)
    25. Unity.UI.Builder.BuilderCommandHandler:OnSaveDocument(KeyUpEvent) (at Library/PackageCache/com.unity.ui.builder@1.0.0-preview.3/Editor/Builder/Utilities/BuilderCommandHandler.cs:147)
    26. UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr, Boolean&)
    27.  
    And are my UXML and USS files:

    Code (CSharp):
    1. <ui:UXML xmlns:ui="UnityEngine.UIElements" xmlns:uie="UnityEditor.UIElements" editor-extension-mode="False">
    2.     <ToolMenuPanel name="container">
    3.         <Style src="/Assets/_UI - Builder/ToolMenu/v1/Styles (uss)/ToolMenuPanel.uss" />
    4.         <ui:VisualElement name="topbar" style="height: 53px; width: 100%; align-items: center; justify-content: flex-start; margin-left: 0; margin-right: 0; margin-top: 0; margin-bottom: 0; padding-left: 0; padding-right: 0; padding-top: 0; padding-bottom: 0;">
    5.             <ui:Label text="BUILDING" name="label" class="label" />
    6.             <ui:VisualElement name="gradient" style="height: 30px; top: 53px; background-image: url(&apos;/Assets/_UI - Builder/Images/tool-menu-topbar-gradient-drop.svg&apos;); position: absolute; width: 100%;" />
    7.         </ui:VisualElement>
    8.         <ui:VisualElement name="buttons-container" class="buttons-container" />
    9.     </ToolMenuPanel>
    10. </ui:UXML>
    11.  
    Code (CSharp):
    1. .panel-container {
    2.     height: 230px;
    3.     align-items: center;
    4.     background-color: rgb(255, 255, 255);
    5.     border-top-left-radius: 4px;
    6.     border-bottom-left-radius: 4px;
    7.     border-top-right-radius: 4px;
    8.     border-bottom-right-radius: 4px;
    9.     margin-top: 20px;
    10.     margin-bottom: 20px;
    11. }
    12.  
    13. .buttons-container {
    14.     flex-shrink: 0;
    15.     flex-direction: row;
    16.     padding-top: 14px;
    17.     padding-right: 20px;
    18.     padding-left: 20px;
    19.     padding-bottom: 0;
    20.     flex-grow: 1;
    21. }
    22.  
    23. .category-card {
    24.     height: 62px;
    25.     border-top-left-radius: 31px;
    26.     border-bottom-left-radius: 31px;
    27.     border-top-right-radius: 31px;
    28.     border-bottom-right-radius: 31px;
    29.     background-color: rgb(89, 95, 105);
    30.     min-width: 280px;
    31.     justify-content: center;
    32. }
    33.  
    34. .category-card #gradient {
    35.     display: none;
    36. }
    37.  
    38. .category-card #buttons-container {
    39.     display: none;
    40. }
    41.  
    42. .category-card #topbar {
    43. }
    44.  
    45. .category-card #label {
    46.     color: rgb(255, 255, 255);
    47. }
    48.  
    49. .label {
    50.     font-size: 20px;
    51.     -unity-font: url('/Assets/_UI - Builder/Nunito-ExtraBold.ttf');
    52.     color: rgb(244, 96, 81);
    53.     -unity-text-align: middle-center;
    54.     white-space: nowrap;
    55.     margin-left: 20px;
    56.     margin-right: 20px;
    57.     margin-top: 10px;
    58.     margin-bottom: 10px;
    59.     min-height: 27px;
    60. }
    61.  
     
    Last edited: Aug 16, 2020
  2. uDamian

    uDamian

    Unity Technologies

    Joined:
    Dec 11, 2017
    Posts:
    1,231
    I don't see anything obviously wrong with your files. I might be the .svg background image, if the VectorGraphics package didn't compile in the new version of Unity, but otherwise, unsure.

    But can you clarify the Unity version numbers? You said:
    but one, that's a downgrade not an upgrade, and two, 2020.1.2 does not exist. :)
     
  3. HrabiaWrzontq

    HrabiaWrzontq

    Joined:
    Nov 28, 2016
    Posts:
    16
    Thanks for your answer.

    I meant this version.
    upload_2020-8-14_9-0-20.png
    I upgraded from 2020.1.1f1.
    I'll check if it will work without the vector graphics.

    EDIT
    Yup, that's the VectorGraphics. I removed the reference to the svg and then upgraded the project and it worked fine. After adding the reference to the svg again the uxml just won't save.

    So I guess I either stop using vector graphics until it's fixed or I stay on 2020.1.1f1.

    Thanks for the tip Damian.

    EDIT #2
    The Vector Graphics package seems to work fine though. All files are imported properly. It seems that the problem is in the UIT package after all.
     
    Last edited: Aug 14, 2020
  4. HrabiaWrzontq

    HrabiaWrzontq

    Joined:
    Nov 28, 2016
    Posts:
    16
  5. HrabiaWrzontq

    HrabiaWrzontq

    Joined:
    Nov 28, 2016
    Posts:
    16
    And here's another error that occurs when I try to save uxml after assigning the ref to a vector graphic.

    Code (CSharp):
    1. ArgumentNullException: Value cannot be null.
    2. Parameter name: objectToOverwrite
    3. UnityEngine.JsonUtility.FromJsonOverwrite (System.String json, System.Object objectToOverwrite) (at <bd9566cca22541e58ad28d1fa2849830>:0)
    4. Unity.UI.Builder.VisualTreeAssetExtensions.DeepOverwrite (UnityEngine.UIElements.VisualTreeAsset vta, UnityEngine.UIElements.VisualTreeAsset other) (at Library/PackageCache/com.unity.ui.builder@1.0.0-preview.3/Editor/Utilities/VisualTreeAssetExtensions/VisualTreeAssetExtensions.cs:50)
    5. Unity.UI.Builder.BuilderDocumentOpenUXML.SaveNewDocument (UnityEngine.UIElements.VisualElement documentRootElement, System.Boolean isSaveAs, System.Boolean& needsFullRefresh, System.String manualUxmlPath) (at Library/PackageCache/com.unity.ui.builder@1.0.0-preview.3/Editor/Builder/Document/BuilderDocumentOpenUXML.cs:411)
    6. Unity.UI.Builder.BuilderDocument.SaveNewDocument (UnityEngine.UIElements.VisualElement documentRootElement, System.Boolean isSaveAs, System.Boolean& needsFullRefresh, System.String manualUxmlPath) (at Library/PackageCache/com.unity.ui.builder@1.0.0-preview.3/Editor/Builder/Document/BuilderDocument.cs:254)
    7. Unity.UI.Builder.BuilderToolbar.SaveDocument (System.Boolean isSaveAs) (at Library/PackageCache/com.unity.ui.builder@1.0.0-preview.3/Editor/Builder/Toolbar/BuilderToolbar.cs:267)
    8. Unity.UI.Builder.BuilderCommandHandler.OnSaveDocument (UnityEngine.UIElements.KeyUpEvent evt) (at Library/PackageCache/com.unity.ui.builder@1.0.0-preview.3/Editor/Builder/Utilities/BuilderCommandHandler.cs:147)
    9. UnityEngine.UIElements.EventCallbackFunctor`1[TEventType].Invoke (UnityEngine.UIElements.EventBase evt) (at Library/PackageCache/com.unity.ui@1.0.0-preview.6/Core/Events/EventCallback.cs:64)
    10. UnityEngine.UIElements.EventCallbackRegistry.InvokeCallbacks (UnityEngine.UIElements.EventBase evt) (at Library/PackageCache/com.unity.ui@1.0.0-preview.6/Core/Events/EventCallbackRegistry.cs:341)
    11. UnityEngine.UIElements.CallbackEventHandler.HandleEvent (UnityEngine.UIElements.EventBase evt) (at Library/PackageCache/com.unity.ui@1.0.0-preview.6/Core/Events/EventHandler.cs:147)
    12. UnityEngine.UIElements.EventDispatchUtilities.PropagateEvent (UnityEngine.UIElements.EventBase evt) (at Library/PackageCache/com.unity.ui@1.0.0-preview.6/Core/Events/IEventDispatchingStrategy.cs:147)
    13. UnityEngine.UIElements.KeyboardEventDispatchingStrategy.DispatchEvent (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel) (at Library/PackageCache/com.unity.ui@1.0.0-preview.6/Core/Events/KeyboardEventDispatchingStrategy.cs:30)
    14. 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.6/Core/EventDispatcher.cs:373)
    15. UnityEngine.UIElements.EventDispatcher.ProcessEvent (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel) (at Library/PackageCache/com.unity.ui@1.0.0-preview.6/Core/EventDispatcher.cs:336)
    16. 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.6/Core/EventDispatcher.cs:216)
    17. UnityEngine.UIElements.BaseVisualElementPanel.SendEvent (UnityEngine.UIElements.EventBase e, UnityEngine.UIElements.DispatchMode dispatchMode) (at Library/PackageCache/com.unity.ui@1.0.0-preview.6/Core/Panel.cs:371)
    18. UnityEngine.UIElements.UIElementsUtility.DoDispatch (UnityEngine.UIElements.BaseVisualElementPanel panel) (at Library/PackageCache/com.unity.ui@1.0.0-preview.6/Core/UIElementsUtility.cs:461)
    19. 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.6/Core/UIElementsUtility.cs:209)
    20. UnityEngine.UIElements.UIEventRegistration.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr) (at Library/PackageCache/com.unity.ui@1.0.0-preview.6/Core/UIElementsUtility.cs:74)
    21. UnityEngine.UIElements.UIEventRegistration+<>c.<.cctor>b__1_2 (System.Int32 i, System.IntPtr ptr) (at Library/PackageCache/com.unity.ui@1.0.0-preview.6/Core/UIElementsUtility.cs:28)
    22. UnityEngine.GUIUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr, System.Boolean& result) (at <2500dd078a544a69b6c923861af6cd15>:0)
     
  6. uDamian

    uDamian

    Unity Technologies

    Joined:
    Dec 11, 2017
    Posts:
    1,231
    Looks like a regression. I'll try to investigate a bit and get back to you. In the meantime, I'd say yes, stay on 2020.1.1f1 if you can. You'll still be able to run latest UI Builder package versions.