Search Unity

  1. Unity 2018.3 is now released.
    Dismiss Notice
  2. The Unity Pro & Visual Studio Professional Bundle gives you the tools you need to develop faster & collaborate more efficiently. Learn more.
    Dismiss Notice
  3. Our response to Improbable’s blog post (and why you can keep working on your SpatialOS game). Read more here
    Dismiss Notice
  4. Want to provide direct feedback to the Unity team? Join the Unity Advisory Panel.
    Dismiss Notice
  5. Improve your Unity skills with a certified instructor in a private, interactive classroom. Watch the overview now.
    Dismiss Notice

Bug (v0.4.8-preview) Addressables.LoadCatalogsFromRuntimeData()

Discussion in 'Addressables' started by s-vovik, Dec 17, 2018.

  1. s-vovik


    Mar 24, 2017
    Platform: WebGL

    I have 2 projects: Client & GameEditor. Both has addressables systems. Client build all UI bundles while GameEditor generates all bundles for game objects and environment. In Client startup I have a script

    Code (CSharp):
    1. public class StartController : MonoBehaviour
    2. {
    3.     public string addressablesCatalog;
    5.     void Start()
    6.     {
    7.         Addressables.InitializationOperation.Completed += operation =>
    8.         {
    9.             if (!string.IsNullOrEmpty(addressablesCatalog))
    10.                 Addressables.LoadCatalogsFromRuntimeData(addressablesCatalog);
    11.         };
    12.     }
    13. }
    The problem is that both projects auto generates UnityBuiltInShaders inside theirse catalogs. So when we LoadCatalogsFromRuntimeData we have 2 addessReferense with same address. As a result we have shaders nightmare and fails to load some addressables prefabs.

    Am I miss somthing?

    Any help is apprisiated.
  2. unity_bill


    Unity Technologies

    Apr 11, 2017
    you are in advanced territory that we haven't fully tested. The shader issue doesn't seem to be you "missing" anything. I think it's an issue on our part. We'll look into it.
    MNNoxMortem likes this.
  3. diego_mp


    Jun 12, 2017
    Yep, same problem here with 0.5.3.

    Code (CSharp):
    1. E/Unity: Exception encounterd in operation UnityEngine.ResourceManagement.AssetBundleProvider+InternalOp`1[System.Object], result='', status='None', valid=True, location=Assets/StreamingAssets/com.unity.addressables/Android/UnityBuiltInShaders..
    2.     UnityEngine.DebugLogHandler:Internal_Log()
    3.     UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
    4.     UnityEngine.Logger:LogFormat(LogType, String, Object[])
    5.     UnityEngine.Debug:LogErrorFormat(String, Object[])
    6.     UnityEngine.AddressableAssets.Addressables:LogException(IAsyncOperation, Exception) (at /Users/xxx/Dev/BRANCH_Academy/Library/PackageCache/com.unity.addressables@0.5.3-preview/Runtime/Addressables.cs:177)
    7.     UnityEngine.ResourceManagement.AsyncOperationBase`1:set_OperationException(Exception) (at /Users/xxx/Dev/BRANCH_Academy/Library/PackageCache/com.unity.resourcemanager@2.4.4-preview/Runtime/AsyncOperations/AsyncOperationBase.cs:167)
    8.     UnityEngine.ResourceManagement.InternalOp`1:<.ctor>b__5_0(IAsyncOperation`1) (at /Users/xxx/Dev/BRANCH_Acade
    9. E/Unity: Exception: Invalid path in AssetBundleProvider: 'Assets/StreamingAssets/com.unity.addressables/Android/UnityBuiltInShaders'.
    [Update] Actually is not the same. I am just trying to load multiple scenes (
    LoadSceneMode.Additive) within a single project. The App crashes there but that folder is auto-generated by the Addressables.
    Last edited: Jan 11, 2019 at 4:37 PM
    unitydevelopers-greg likes this.
  4. unitydevelopers-greg


    Nov 15, 2018
    @unity_bill Same here, the issue is holding major release. Any ETA on the fix? Can you drop the updates here please
    diego_mp and MNNoxMortem like this.
  5. diego_mp


    Jun 12, 2017
    I found a workaround for now, just kill the function that builds the UnityBuiltInShaders.
    Open CreateBuiltInShadersBundle and
    Code (CSharp):
    1.         public ReturnCode Run()
    2.         {
    3.             return ReturnCode.Success;
    4.         }
    It will break something at least I can go on now.