docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Load assets by location

    When you load an Addressable asset by address, label, or AssetReference, the Addressables system first looks up the resource locations for the assets and uses the IResourceLocation instances to download the required AssetBundles and any dependencies. To perform the asset load operation, get the IResourceLocation objects with LoadResourceLocationsAsync and then use those objects as keys to load or instantiate the assets.

    IResourceLocation objects contain the information needed to load one or more assets.

    The LoadResourceLocationsAsync method never fails. If it can't resolve the specified keys to the locations of any assets, it returns an empty list. You can restrict the types of asset locations returned by the method by specifying a specific type in the type parameter.

    The following example loads locations for all assets labeled with knight or villager:

    
    AsyncOperationHandle<IList<IResourceLocation>> handle
        = Addressables.LoadResourceLocationsAsync(
            new string[] {"knight", "villager"},
            Addressables.MergeMode.Union);
    
    yield return handle;
    
    //...
    
    handle.Release();
    
    

    Load locations of sub-objects

    Unity generates locations for SubObjects at runtime to reduce the size of the content catalogs and improve runtime performance. When you call LoadResourceLocationsAsync with the key of an asset with sub-objects and don't specify a type, then the method generates IResourceLocation instances for all the sub-objects and the main object. Likewise, if you don't specify which sub-object to use for an AssetReference that points to an asset with sub-objects, then the system generates IResourceLocation instances for every sub-object.

    For example, if you load the locations for an FBX asset, with the address, myFBXObject, you might get locations for three assets: a GameObject, a mesh, and a material. If, instead, you specify the type in the address, myFBXObject[Mesh], you only get the mesh object. You can also specify the type using the type parameter of the LoadResourceLocationsAsync method.

    In This Article
    Back to top
    Copyright © 2025 Unity Technologies — Trademarks and terms of use
    • Legal
    • Privacy Policy
    • Cookie Policy
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)