docs.unity3d.com
    Show / Hide Table of Contents

    Customizing Addressables initialization

    The Addressables system initializes itself at runtime the first time you load an Addressable or make another call to an Addressable API. Call Addressables.InitializeAsync to initialize Addressables earlier (this function does nothing if initialization has already occurred).

    The initialization operation performs the following tasks:

    • Sets up the ResourceManager and the ResourceLocators.
    • Loads configuration data created by Addressables from StreamingAssets.
    • Executes any initialization object operations.
    • Loads the content catalog. By default, Addressables first checks for updates to the content catalog and downloads a new catalog if available.

    The following Addressables settings can change initialization behavior:

    • Disable Catalog Update on Startup: Addressables won't automatically check for an updated catalog. See Updating catalogs for information about manually updating your catalogs.
    • Build Remote Catalog: Addressables won't attempt to load remote content without a remote catalog.
    • Custom certificate handler: identify a custom certificate handler if you need one to access your remote asset hosting service.
    • Initialization object list: add IObjectInitializationDataProvider ScriptableObjects to your application that are invoked during the initialization operation.

    The following runtime properties should be set before the initialization operation starts:

    • Custom URL transform function
    • ResourceManager exception handler
    • Static properties used for any custom runtime placeholders in your Profile variables

    Initialization objects

    You can attach objects to the Addressable Assets settings and pass them to the initialization process at runtime. For example, you can create a CacheInitializationSettings object to initialize Unity's Cache settings at runtime. To create your own types of initialization object, create a ScriptableObject that implements the IObjectInitializationDataProvider interface. Use this object to create the ObjectInitializationData asset that Addressables includes with your the runtime data.

    Cache initialization objects

    Use a CacheInitializationSettings object to initialize Unity's Cache settings at runtime.

    To specify the cache initialization settings that the Addressables system should use:

    1. Create the CacheInitializationSettings asset (menu: Assets > Addressables > Initialization > Cache Initialization Settings).
    2. Select the new asset file in the Project panel to view the settings in the Inspector

    3. Adjust the settings as desired.

    4. Open the Addressables Settings Inspector (menu: Window > Asset Management > Addressables > Settings).
    5. In the Initialization Objects section of the Inspector, click the + button to add a new object to the list.
    6. Select your CacheInitializationSettings asset in the File dialog and click Open.
    7. The cache settings object is added to the list.

    When Addressables initializes at runtime, it applies these settings to the default Unity Cache. The settings apply to all AssetBundles in the default cache, not just those downloaded by the Addressables system. See Caching for more information about the Unity cache system.

    Note

    Android applications built with Unity 202.1 or earlier or running on Android 9 or earlier can only play videos from uncompressed AssetBundles. You can use a CacheInitializationSettings object to disable recompression of the cache by disabling the Compress Bundles option.

    Back to top
    Terms of use
    Copyright © 2023 Unity Technologies — Terms of use
    • Legal
    • Privacy Policy
    • Cookies
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)
    "Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
    Generated by DocFX on 18 October 2023