unity-addressables-design

Provides source-anchored design rules for Unity Addressables across versions 1.22.3 and 2.9.1.

Updated May 20, 2026
One-click install
npx skills add https://github.com/yuse168/Roomies --skill unity-addressables-design-yuse168
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: unity-addressables-design
Source: https://github.com/yuse168/Roomies/tree/main/.agents/skills/unity-skills/skills/addressables-design
Command: npx skills add https://github.com/yuse168/Roomies --skill unity-addressables-design-yuse168

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Writing Unity Addressables code from memory often produces hallucinated APIs, because training data mixes version 1.x (Unity 2022) and 2.x (Unity 6) surfaces, causing compile errors, memory leaks, and broken catalog update flows. ## Core Features & Use Cases - Version-Accurate API Rules: Every rule cites exact source files and line numbers from Addressables 1.22.3 and 2.9.1, covering initialization, handles, loading, scenes, downloads, and AssetReference. - Migration Guidance: A complete legacy-to-modern API mapping table for porting 1.22.3 code to 2.9.1, including removed overloads and the new SceneReleaseMode enum. - 30 Verified Pitfalls: Concrete anti-patterns with version tags and fixes, such as double-releasing handles, using Destroy on InstantiateAsync instances, and skipping CheckForCatalogUpdates. - Use Case: When asked to write a hot-update patch flow or review Addressables loading code, the AI loads the relevant sub-document (INIT, HANDLES, LOADING, SCENE, UPDATE, DOWNLOAD, ASSETREF, or PITFALLS) and produces code that compiles on the target Unity version. ## Quick Start Ask the AI to write or review Unity Addressables code for your target version, for example requesting a catalog update and preload flow for Unity 6.

Frequently Asked Questions about unity-addressables-design

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I load assets with Unity Addressables without memory leaks?▼

Every LoadAssetAsync or InstantiateAsync call returns a handle that must be released via Addressables.Release or Addressables.ReleaseInstance. Forgetting to release keeps the AssetBundle in memory indefinitely, and using GameObject.Destroy on an InstantiateAsync instance does not decrement the refcount.

What changed between Addressables 1.22.3 and 2.9.1?▼

Addressables 2.9.1 removed all non-Async obsolete methods like LoadAsset and Instantiate, replaced IList<object> overloads with IEnumerable, and added SceneReleaseMode for scene unload control. LegacyResourcesLocator, DiagnosticEvent, and RegisterDiagnosticCallback were also removed.

Why does my Addressables code fail to compile on Unity 6?▼

Unity 6 ships Addressables 2.9.1, which removed all non-Async variants such as LoadAsset, Instantiate, LoadScene, and Initialize that were only marked Obsolete in 1.22.3. Replace every call with its Async counterpart and switch IList<object> key arguments to IEnumerable.

Does Addressables WaitForCompletion work on WebGL?▼

WaitForCompletion is unsupported on WebGL and throws because the JavaScript backend cannot synchronously pump async operations. Use await handle.Task or the Completed event instead, and guard any WaitForCompletion usage with platform conditionals.

How do I implement a hot-update catalog flow in Addressables?▼

Call CheckForCatalogUpdates first, then pass the returned stale catalog list to UpdateCatalogs, optionally with autoCleanBundleCache on 2.9.1. Skipping the check re-downloads every catalog each launch, and running updates with live handles can invalidate them.

Why does loading the same AssetReference twice throw an exception?▼

AssetReference caches its OperationHandle, so a second LoadAssetAsync without releasing throws an active-handle InvalidOperationException. Either call ReleaseAsset between loads or use Addressables.LoadAssetAsync with ref.RuntimeKey for independent concurrent loads.