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. We've updated our Terms of Service. Please read our blog post from Unity CTO and Co-Founder Joachim Ante 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
    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.