# 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
See also (added 2026-11-10): [[Publishing to itch.io and Steam]] - a store-ready player must already include the Addressable content you intend to ship ([[6. Content Builds Updates and CI]]).