Search Unity

[DOTS] How to fix: "Globalgamemanagers.assets is corrupted" in standalone build

Discussion in 'UI Toolkit' started by Kmsxkuse, Jan 2, 2021.

  1. Kmsxkuse

    Kmsxkuse

    Joined:
    Feb 15, 2019
    Posts:
    306
    As mentioned in this thread:

    https://forum.unity.com/threads/globalgamemanagers-assets-is-corrupted-in-standalone-build.961392/

    it appears that the serialization of assets into Globalgamemanagers.assets has bugged out again for standalone Mono and IL2CPP builds.

    It has been previously fixed as seen in this thread

    https://forum.unity.com/threads/bui...2-0a21-completely-broken.969585/#post-6309963

    But once again UI Toolkit breaks the build by merely existing in the packages list.

    My package list is simple, just UIToolkit and HDRP (and the IDE connection).
    Code (CSharp):
    1. {
    2.   "dependencies": {
    3.     "com.unity.ide.rider": "3.0.3",
    4.     "com.unity.ui": "1.0.0-preview.13",
    5.     "com.unity.render-pipelines.high-definition": "10.2.2",
    6.     "com.unity.modules.animation": "1.0.0",
    7.     "com.unity.modules.imageconversion": "1.0.0",
    8.     "com.unity.modules.physics": "1.0.0",
    9.     "com.unity.modules.video": "1.0.0"
    10.   }
    11. }
    12.  
    Create a new project in 2020.2.1F1 using this list. Build the SampleScene (and it will succeed).

    Immediately crashes with : The file 'C:/.../Game/Game_Data/globalgamemanagers.assets' is corrupted! Remove it and launch unity again!
    [Position out of bounds!]

    Remove UIToolkit and the scene builds and runs with no issues.

    Strangest thing is that it was working earlier today. Midway through my prototyping, it stopped working.

    No updates, no changes to packages, only a scripting change, and routine build check.

    Edit: Right, I think I know what's going on.

    UIToolkit and Entities do not like each other. Not counting the UIElementsModule errors, I've been compiling my project fine before with that error, but something changes when restarting the editor.

    Steps to reproduce:

    1. Make a new 3D project in 2020.2.1f1.

    2. Delete the entire packages Manifest.json folder and replace it with the one above.

    3. Build the sample scene (camera and directional light).
    This works without any crashes.

    4. Add com.unity.entities to the packages list (using add git link).

    5. Build the sample scene again (without changing anything).
    Notice that the player does not crash. In fact, if you were to add UI elements and DOTS components without restarting the editor, the build comes out perfectly with both functioning.
    Doing the same but in reverse, new project with Entities and HDRP -> open editor -> build success -> add UIToolkit -> build success, also works.

    6. Restart the editor.

    7. Build the sample scene again.
    Notice that the player crashes with this error.

    8. Remove the Entities (or UIToolkit) package without restarting the editor.

    9. Build the sample scene again.
    Notice that the player crashes with the same error.

    10. Restart the Unity editor.

    11. Build the sample scene again.
    Player does not crash.

    Conclusion: Importing Entities and UIToolkit breaks compatibility but not when UIToolkit is newly added during an already existing Entities project. That implies that importing Entities first then UIToolkit or UIToolkit and then Entities results in a functioning build but not at the same time.

    Note: I have not tried this with Hybrid Renderer. Only Entities.

    In order to reset the editor to be able to build successfully again with both, you will need to remove either Entities and UIToolkit, restart the editor, then re-add the removed package and continue working.

    So long as you do not close the editor, the build functions with both UIToolkit and Entities. An annoying requirement but you can at least continue working.

    Before closing the editor, remove either Entities or UIToolkit (I recommend UIToolkit as it's faster to reimport). If you remove UIToolkit, the packages window and some parts of the editor will break. Ignore it and just close the editor.

    Reopening the editor, you will recieve a "enter safe mode" prompt. Ignore it and continue on.

    Re-add "com.unity.ui". Wait for to finish importing. Clear the console of all the errors and no script should be outputting an error now that both packages UIToolkit and Entities are added.

    If the packages window is still broken, open up Manifest.json with the editor still open and manually add in
    "com.unity.ui": "1.0.0-preview.13",
    to the list. Then tab back to the Editor and it should start the import process.

    Start the editor's player at least once.
    There will be a lot of warnings and a few errors in the console but ignore them. That's just UIToolkit actually being recognized by the editor. If you do not do this, then the build will "succeed" but with a lot of errors about missing UI shaders and whatnot.

    While you're in the editor player mode, check to make sure all the UI elements are operating properly and the various runtime components are functioning post reimport.

    Then build the project, both should be functional. Entities should be working and the UI should be there.

    Simple and easy workaround. Well, simple and easy in the standard of Unity DOTS workflow. If you're working with Entities, this level of workaround should be standard practice by now.
     
    Last edited: Jan 2, 2021
  2. nichayes

    nichayes

    Joined:
    Dec 21, 2020
    Posts:
    1
    Confirmed I was able to reproduce this in my project with 2020.2.1f1 and UI Toolkit... back to 2020.2.0f1...
     
    Kmsxkuse likes this.
  3. Kmsxkuse

    Kmsxkuse

    Joined:
    Feb 15, 2019
    Posts:
    306
    I've also reproduced this in 2020.2.0f1 so downgrading unfortunately doesnt help if that's what you're suggesting.

    At least the in-editor player works. These hoops must only be jumpped through when building a new standalone.
     
  4. LeonhardP

    LeonhardP

    Unity Technologies

    Joined:
    Jul 4, 2016
    Posts:
    3,136
    Could you please submit a bug report with a reproducible attached if you are seeing these issues in 2020.2.1+?
     
  5. StefanWo

    StefanWo

    Joined:
    May 24, 2015
    Posts:
    124
    It seems its the same thing that happens now in 2022.2.0f1. The workaround seems partialy working, sometimes it needs a second try to make it work. This time it say:
    Code (CSharp):
    1. Asset has disappeared while building player to 'globalgamemanagers.assets' - path '', instancedID '-43676'
    Can it be related? Any updates to this bug?
     
  6. Tortuap

    Tortuap

    Joined:
    Dec 4, 2013
    Posts:
    137
    Same bug here with 2022.3.6f1
     
  7. baggyg

    baggyg

    Joined:
    Nov 21, 2013
    Posts:
    30
    Same bug here with 2022.3.16f1
     
  8. autumn_737

    autumn_737

    Joined:
    Jul 23, 2012
    Posts:
    19
    Same bug here with 2022.3.17f1


    Asset has disappeared while building player to 'globalgamemanagers.assets' - path '', instancedID '-417692'
    UnityEngine.GUIUtility:processEvent (int,intptr,bool&)
     
  9. pavel_luden

    pavel_luden

    Joined:
    Apr 19, 2018
    Posts:
    6
    Got the same error, 2022.3.14f1
    Asset has disappeared while building player to 'globalgamemanagers.assets' - path '', instancedID '-1569036'

    We don't use dots/entities/uitoolkit and other modern stuff.
    Reproduced only only for UWP BuildTarget.WSAPlayer build, only in batch mode. Not reproduced when build started from editor UI.
    Reproduced on every build, so it was a blocked for our Jenkins build machines.
    Was not ever reproduced before we updated to unity 2022 from 2021.3.17f1

    For me, the solution was to disable "Parallel import"
    editor -> project settings -> editor -> parallel import
     
  10. dansyrotyn

    dansyrotyn

    Joined:
    Oct 16, 2012
    Posts:
    15
    Same error hero!
    Unity 2022.3.18f1