Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Question Remote catalog contains references to bundles in internal build

Discussion in 'Addressables' started by SampsaPlaysome, Mar 16, 2023.

  1. SampsaPlaysome

    SampsaPlaysome

    Joined:
    Oct 20, 2019
    Posts:
    33
    Hello,

    We're in the process of getting Addressables of working, and there are few issues with that. Currently I'm perplexed by an issue, where the remote catalog contains references to the internal addressables content, namely the built-in shaders:

    Code (CSharp):
    1. "UnityEngine.AddressableAssets.Addressables.RuntimePath}/Android/customid_unitybuiltinshaders_6dc727423cf11a64a55f4943f4a32465.bundle"
    The same line is in the internal catalog embeded in the build (catalog.json) and the remote catalog (catalog_xxx.json).

    Problem with this is that remote catalog is not usable until the client contains the same built-in bundle. This kind of makes me wonder if the remote catalogs are supposed to be build specific. Because this means that client builds can only use remote catalog built specifically for their version. This is not communicated in the documentation in any way.

    Are we doing something wrong to have built-in assets being in the remote catalog, or have we understood something wrong here?
     
  2. pillakirsten

    pillakirsten

    Unity Technologies

    Joined:
    May 22, 2019
    Posts:
    346
    Hi @SampsaPlaysome how do the built-in shader bundle names differ? The prefix is constructed based on the the Shader Bundle Naming Prefix setting in AddressableAssetSettings. The suffix is constructed based on the Bundle Naming Mode of your default group. By default the suffix uses the bundle hash, which should be the same between builds assuming the same Unity version is used.

    The remote catalog still contains references to local bundles (i.e. the built-in shaders bundle). When the catalog is loaded, it either adds new keys that can be loaded (Addressables.LoadContentCatalogAsync), or replaces the keys of the catalog in use (Addressables.UpdateCatalogs). https://docs.unity3d.com/Packages/c...1/manual/runtime/LoadContentCatalogAsync.html