Search Unity

Current status of Assetbundle's Unity Version upgrade capability?

Discussion in 'Asset Bundles' started by Deleted User, Apr 26, 2019.

  1. Deleted User

    Deleted User

    Guest

    We would like to create an application that needs to be evolved while keeping existing AssetBundles working across newer engine version releases.

    The Manual pages state the following "Type trees are not supported when using the .NET scripting backend with Windows Store/Universal Windows Platform targets". This might be old.

    - Does this mean Unity versions can be increased no problem except for UWP (all other platforms will work fine)?
    - Has anything changed regarding the UWP support for Asset Bundles?
    - What does this mean for IL2CPP?

    What's the alternative if you're going to build large amounts of bundles you want to be version compatible at all times?
     
  2. Ryanc_unity

    Ryanc_unity

    Unity Technologies

    Joined:
    Jul 22, 2015
    Posts:
    332
    Hey Alexees,

    That note is for a specific scripting backend, .NET, that was removed in 2018.1: https://forum.unity.com/threads/dep...sed-by-the-universal-windows-platform.539685/ Previously on UWP platforms you had 2 options of scripting backends: .NET & IL2CPP. So this note was just to inform users they would need to switch their scripting backend to IL2CPP.

    Now, as for backwards compatibility of asset bundles:
    Asset Bundle loading does support backwards compatibility loading. That being said, it is not 100% flawless as there are definitely times where data has to change to support newer platforms or platform features and will require the asset bundles to be rebuilt as there is just not enough data or the right types of data in an existing bundle. The breaking changes are almost always listed under the patch notes and major release notes, for example the Backwards Compatibility Breaking Changes section here: https://unity3d.com/unity/whats-new/2019.1.0 Keep in mind when reading that section that Asset Bundles are just wrappers around built content, so those notes won't specifically say "Breaks Asset Bundles" but they will call out specific types of assets or systems that have breaking changes.
     
  3. Deleted User

    Deleted User

    Guest

    @Ryanc_unity thanks for the info, that's what I needed to know :)
     
  4. Deleted User

    Deleted User

    Guest

    @ryanc-unity one more question:
    Asset Bundles can only ever be created when the UnityEditor is NOT in play mode. Will it be possible in the future to use Unity as an AssetBundle creator machine, creating an instance or running it with certain parameters got generate bundles?
    We aim for generating dynamic content and are considering to use AssetBundles to get them loaded into our application. As far as I know, this is the most performant way as all assets are processed to be consumed by the engine the easiest.
     
  5. RandomPoint

    RandomPoint

    Joined:
    Jul 21, 2017
    Posts:
    14
    Is there a way to get the Unity version that built the AssetBundle from the AssetBundle itself?
     
  6. Ryanc_unity

    Ryanc_unity

    Unity Technologies

    Joined:
    Jul 22, 2015
    Posts:
    332
    @Alexees
    We don't have a plan for doing that at this time. This is actually the first we've heard of the idea.

    @RandomPoint
    There isn't a public C# api for getting the unity version that built the asset bundle. However it is part of the asset bundle header, so you could read the raw header bytes and get it from there, but that header is undocumented and subject to change as needs arise so I don't recommend relying on it for anything critical.
     
  7. RandomPoint

    RandomPoint

    Joined:
    Jul 21, 2017
    Posts:
    14
    @Ryanc_unity For asset management purposes it would be useful to be able to examine that header information. Right now, to determine compatibility of a particular AssetBundle with my Unity application I have to load it and see whether it succeeds or fails. It would be swell if you exposed the API to access those values in a "civilized" manner.
     
    mmortall likes this.
  8. Deleted User

    Deleted User

    Guest

    @Ryanc_unity Since Bundles are probably the most performant for then engine, what's the alternative for autocreating content that would normally be processed by the editor and then used after optimization?
     
  9. Ayfel

    Ayfel

    Joined:
    Feb 28, 2015
    Posts:
    13
    @Ryanc_unity we would love to be able to create assetbundles at runtime. This would allow user generated content to be much less of a pain for sure.
     
    mgear likes this.