docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Convert scenes to use Addressables

    Any scenes that are in the Scene List in the Build Profiles window can't be Addressable. To make the scene data Addressable, you must remove the scenes from the Scene List, and then create a non-Addressable initialization scene which loads the first Addressable scene.

    1. Create a new initialization scene and open it. (File > New Scene, or right click on the Project window and select Create > Scene)
    2. Open the Build Profiles window (File > Build Profiles), and select the Scene List.
    3. Add the initialization scene to the scene list.
    4. Remove the other scenes from the list.
    5. In the Project window, select each scene you want to convert to Addressable. In the Inspector, enable the Addressable option. Or, you can drag scene assets to a group in the Addressables Groups window. Don't make your new initialization scene Addressable.
    6. Update the code you use to load scenes to use the Addressables.LoadSceneAsync method rather than the SceneManager methods. For more information, refer to Load scenes.

    You can now split your one, large Addressable scene group into multiple groups. The best way to do that depends on the project goals. To proceed, you can move your scenes into their own groups so that you can load and unload each of them independently of each other.

    Use Addressable assets in non-Addressable scenes

    For any scenes that you don't want to make Addressable, you can still use Addressable assets as part of the scene data through AssetReferences.

    When you add an AssetReference field to a custom MonoBehaviour or ScriptableObject class, you can assign an Addressable asset to the field in the Unity Editor in a similar way that you assign an asset as a direct reference. The main difference is that you need to add code to your class to load and release the asset assigned to the AssetReference field (whereas Unity loads direct references automatically when it instantiates your object in the scene).

    Note

    You can't use Addressable assets for the fields of any UnityEngine components in a non-Addressable scene. For example, if you assign an Addressable mesh asset to a MeshFilter component in a non-Addressable scene, Unity doesn't use the Addressable version of that mesh data for the scene. Instead, Unity copies the mesh asset and includes two versions of the mesh in your application: one in the AssetBundle built for the Addressable group that contains the mesh, and one in the built-in scene data of the non-Addressable scene. When used in an Addressable scene, Unity doesn't copy the mesh data and always loads it from the AssetBundle.

    To replace direct references with AssetReferences in your custom classes, follow these steps:

    1. Replace any direct references to objects with asset references (for example, public GameObject directRefMember; becomes public AssetReference assetRefMember;).
    2. Drag assets onto the appropriate component's Inspector.
    3. Add runtime code to load the assigned asset using the Addressables API.
    4. Add code to release the loaded asset when no longer needed.

    For more information about using AssetReference fields, refer to Create an asset reference field and Load asset references.

    Additional resources

    • Load scenes
    • Referencing Addressable assets in code
    • Convert prefabs to use Addressables
    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)