# Addressables, Asset Management and Streaming **Addressables** (`com.unity.addressables`) is how a Unity 6 project loads content **by address**, locally or from a remote catalog, without sprinkling `Resources.Load` and handwritten AssetBundle code through the runtime. This Pipelines series covers the mental model, groups and labels, the load/release contract, scene loading, and the content-update workflow — then hooks it to [[Build Automation and CI]] and to the systems already in this vault ([[Localization]] already sits on Addressables; [[SceneManagement in Unity 6]] is the additive-load counterpart). **Target:** Unity **6000.5+**. Quest notes target **Unity 6.3 LTS (6000.3.27f2+)** ([[0.Choosing a Unity Version]]). Addressables 2.9.x supports Unity 6; confirm the version Package Manager offers on 6.3 LTS before you pin a CI image. > [!warning] Code not compiled > Scripts were checked against the Addressables **2.9.1** manual and API (LoadAssetAsync, LoadAssetsAsync, InstantiateAsync, AssetReference, LoadSceneAsync, Release / ReleaseInstance, UnloadSceneAsync) on 2026-11-10. **They have not been compiled or run in Unity.** Play Mode behavior depends on which Play Mode Script you have selected. > [!note] Verification status > **Versions (2026-11-10):** **2.9.1** is the version *released for* Unity Editor 6000.5. These released lines are also available in 6000.5: 2.10.x, 2.11.x, 3.0.0, 3.1.0, 4.0.x, **4.1.0–4.1.2**. Registry 4.2.0 existed as of early November 2026 but was **not** on the 6000.5 package page when it was fetched (11 days before this note). The code in this series uses the **2.9 API**, which still underpins 4.x. `AsyncOperationHandle.ToAwaitable()` is documented in **4.0+**, not in 2.9 — do not call it unless you have upgraded. If Package Manager offers 2.11 or 4.1 and you want it, read that line's changelog first. > **Not verified:** exact Groups window labels on 4.x (4.2 notes some menu-copy rewrites); a live CCD project; `com.unity.addressables.android` (listed as a released 6000.5 package, not used here). ## Parts | # | Note | Covers | |---|---|---| | 1 | [[1. Addressables Mental Model]] | Addresses, groups, labels, catalogs vs Resources and raw AssetBundles | | 2 | [[2. Groups Profiles and Play Mode Scripts]] | Install, default groups, profiles, play-mode scripts | | 3 | [[3. Loading Instantiating and Releasing]] | `LoadAssetAsync`, handles, `InstantiateAsync`, `AssetReference` | | 4 | [[4. Labels and Loading Many Assets]] | Labels, merge modes, sprites / subassets | | 5 | [[5. Scenes Catalogs and Remote Content]] | `LoadSceneAsync`, catalogs, remote hosting / CCD | | 6 | [[6. Content Builds Updates and CI]] | Content build, update workflow, hooking a player build | | 7 | [[7. Addressables Pitfalls and Quest]] | Leaks, Editor vs Player, memory, Quest | ## Design lens (Level Up!) Streaming is how a big world stays inside a small budget (Level 9 of [[Level Up! (Review)]], and every Quest lab). The design question is "what must be in memory for *this* verb?" not "can we import the whole campaign into the first scene?" ## Patterns used (Game Programming Patterns) - **Service Locator** - `Addressables` is a global locator. Wrap it at the edges if you want tests to fake loads ([[Unity Test Framework]]). - **Flyweight** - one address, many instances; release the *operation*, not only the instance. - **Object Pool** - Instantiating from Addressables every shot is still a spike; load the prefab once, pool instances. - **Type Object** - ScriptableObject definitions can themselves be Addressable ([[ScriptableObject Architecture]]). See [[Game Programming Patterns (Review)]]. ## Related (existing) - [[Localization]] - string and asset tables load through Addressables - [[SceneManagement in Unity 6]] / [[SceneManagement]] / [[Level Manager]] - [[Build Automation and CI]] - [[Profiling and Optimization]] / [[3. Memory Profiler Snapshots]] - [[Inventory Systems]], [[High Scores, Saves and Player Stats]] - [[2. Git LFS]] - source art still belongs in LFS; Addressables is a *runtime* packaging of that art ## Sources - Addressables package page (6000.5): https://docs.unity.com/en-us/engine/6000.5/manual/packages-list/packages-all/pack-safe/com-unity-addressables - Addressables 2.9.1 load assets: https://docs.unity3d.com/Packages/[email protected]/manual/load-assets.html - LoadAssetAsync API (2.9.1): https://docs.unity3d.com/Packages/[email protected]/api/UnityEngine.AddressableAssets.Addressables.LoadAssetAsync.html - InstantiateAsync API (2.9.1): https://docs.unity3d.com/Packages/[email protected]/api/UnityEngine.AddressableAssets.Addressables.InstantiateAsync.html - Load scenes (2.9.1): https://docs.unity3d.com/Packages/[email protected]/manual/LoadingScenes.html - Unload assets (2.9.1): https://docs.unity3d.com/Packages/[email protected]/manual/UnloadingAddressableAssets.html - ToAwaitable (4.2 docs; 4.0+): https://docs.unity3d.com/Packages/[email protected]/api/UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle-1.ToAwaitable.html