Search Unity

  1. We're looking for feedback on Unity Starter Kits! Let us know what you’d like.
    Dismiss Notice
  2. Unity 2017.2 beta is now available for download.
    Dismiss Notice
  3. Unity 2017.1 is now released.
    Dismiss Notice
  4. Introducing the Unity Essentials Packs! Find out more.
    Dismiss Notice
  5. Check out all the fixes for 5.6 on the patch releases page.
    Dismiss Notice
  6. Help us improve the editor usability and artist workflows. Join our discussion to provide your feedback.
    Dismiss Notice

Downgrading Unity 5.5 to 5.4 causes Failures in Scenes and Prefabs

Discussion in '5.5 Beta' started by lloydsummers, Oct 17, 2016.

  1. lloydsummers

    lloydsummers

    Joined:
    May 17, 2013
    Posts:
    292
    As I'm sure you know, Unity 5.5 is using a new serialization version for GameObjects. This is causing .unity and .prefab files in BINARY mode to generate the appropriate error "These files require a newer version of Unity".

    However, when you set your project to TEXT mode (i.e. if you use GIT), no error is generated. And instead all the scene data is loaded with blank strings and names, with the GameObjects disabled.
     
    Icebone1000 likes this.
  2. mikew_unity

    mikew_unity

    Unity Technologies

    Joined:
    Sep 27, 2016
    Posts:
    62
    When you downgraded the project, did you delete the Library folder before re-opening in 5.4? I've done this in the past without problems, but ymmv
     
  3. lloydsummers

    lloydsummers

    Joined:
    May 17, 2013
    Posts:
    292
    Thank you - unfortunately that doesn't work in 5.5, killing the library folder has no effect. GameObject references, Prefabs and Particles and have a new Serialized format that 5.4 and earlier don't understand. With the actual data objects being different.

    This impacts .unity files and .prefab files with those associated references in them.

    I had to write a tool to manually parse the asset files and undo the new structure changes. They appear to provide no value just a new way to reference the same data.

    What appears to happen, is Unity will refuse to load the files in binary format and warns the format is too new. In text format it doesn't refuse, instead loads them, and because it doesn't understand the format, shows invalid data.

    Although, as an external developer, I can only theorize on the issue...
     
    Last edited: Oct 19, 2016
  4. mikew_unity

    mikew_unity

    Unity Technologies

    Joined:
    Sep 27, 2016
    Posts:
    62
    strange. I'm pretty sure I did this very thing to a project a short while ago and it loaded things fine. Unfortunately porting projects backwards isn't something that is likely to be officially supported.

    Definitely worth noting though. Going to give it a try again with a project and see what happens...
     
  5. lloydsummers

    lloydsummers

    Joined:
    May 17, 2013
    Posts:
    292
    I know it isn't supported, in binary mode it will give the user an appropriate error that it isn't going to port to the older build. In text mode that error and warning doesn't appear. So this post, in my opinion, is more of a PSA to git users like me. There is no resolving this and creating a dialog popup as the dialog would need to be applied to 5.4.x and everyone would need to upgrade to it etc etc.

    If you use text mode with a prefab of GameObjects it should be quick to replicate.

    I'll try later this week with our project again, but it is a 20GB project and Unity takes over 24hrs to rebuild the library every time, plus rebuilding of lightmaps. I'll check with a small project sample but like I said, if you have a scene with a prefab in text mode - downgrade to 5.4, names will appear blank and Particles will be missing materials and elements.

    Like I mentioned though I just rolled my own tool to downgrade our projects. But other people may care to know about it.
     
  6. skeptika

    skeptika

    Joined:
    Dec 31, 2011
    Posts:
    70
    Can confirm this happened to me as well, started adding double transforms to things, cross referencing assets, etc, and just making a huge, huge mess. Official support for downgrading I wouldn't expect, but this has worked in the past, so something changed that is causing it.
     
  7. lloydsummers

    lloydsummers

    Joined:
    May 17, 2013
    Posts:
    292
    Yeah, downgrading used to work (very rarely, requiring the deleting of the library folder). It actually works fairly seamlessly from 5.4 all the way down to 4.6. I do it frequently actually because I often need to build for platforms that Unity decided they felt like no longer supporting ... so I need to juggle back to old versions.

    My little tool to downgrade the assets seems to mostly work without incident except for particles ... but its certainly something people might want to know about given that many developers these days have 5+ versions of Unity installed (console support etc. etc) :p

    That is the risk of trying to actually use the their beta's for anything though I suppose.
     
    Last edited: Oct 27, 2016
    MuhammadHamzaRauf likes this.
  8. lloydsummers

    lloydsummers

    Joined:
    May 17, 2013
    Posts:
    292
    I can confirm as well, I've been able to repro this with deleted libraries etc (I dont store the library folder in our repos).

    At this time, you can downgrade from 5.4 all the way to 4.6.
    You cannot downgrade from 5.5 to 5.4.

    This is a one way journey my friends. And there is no way for them to 'fix' it or to remove the serializable change they created without completely breaking every 5.5 beta testers projects. I expect this to go to RC as-is.

    So if you are like me and need to juggle 5 versions of Unity for platforms they won't support / console versions etc - never install Unity 5.5 or later.
     
    bugshake, OlliWeARVR, nomadic and 5 others like this.