unity-addressables-design

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

Updated Jun 21, 2026
One-click install
npx skills add https://github.com/du-qwq/Shader-Writing-Architecture-and-Specifications --skill unity-addressables-design-du-qwq
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: unity-addressables-design
Source: https://github.com/du-qwq/Shader-Writing-Architecture-and-Specifications/tree/main/.agents/skills/unity-skills/skills/addressables-design
Command: npx skills add https://github.com/du-qwq/Shader-Writing-Architecture-and-Specifications --skill unity-addressables-design-du-qwq

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Writing Unity Addressables code from memory often produces compile errors or memory leaks because the API surface changed significantly between version 1.22.3 (Unity 2022) and 2.9.1 (Unity 6), with removed methods, changed overloads, and new enums like SceneReleaseMode. ## Core Features & Use Cases - Version-Verified API Rules: Every rule cites exact file and line anchors in Addressables source for both 1.22.3 and 2.9.1, covering initialization, handles, loading, scenes, downloads, catalog updates, and AssetReference. - Migration Guidance: A complete legacy-to-modern API mapping table plus 30 documented pitfalls with version tags prevents hallucinated or obsolete API usage. - Use Case: When porting a Unity 2022 project to Unity 6, use this Skill to identify every removed non-Async method, IList<object> overload, and diagnostic API that must be rewritten before the code compiles. ## Quick Start Review my Addressables scene loading code and check it against the Unity 6 version 2.9.1 API rules.

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 asynchronously with Unity Addressables?

Use Addressables.LoadAssetAsync<T>(key) and await handle.Task, then check Status before reading Result. Always release the handle with Addressables.Release(handle) when finished, or the AssetBundle stays in memory indefinitely.

How do I migrate Addressables code from 1.22.3 to 2.9.1?

Replace every non-Async method (LoadAsset, Instantiate, LoadScene, Initialize) with its Async counterpart, since all obsolete variants were removed in 2.9.1. Also convert IList<object> multi-key arguments to IEnumerable and remove LegacyResourcesLocator and diagnostic API references.

Why does Addressables throw 'Attempting to use an invalid operation handle'?

This happens when a handle is released twice or used after release, such as mixing Addressables.Release(handle) with AssetReference.ReleaseAsset() on the same load. Use exactly one release path per load call.

Does Addressables WaitForCompletion work on WebGL?

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

What is SceneReleaseMode in Addressables 2.9.1?

SceneReleaseMode is a new enum in 2.9.1 controlling whether the scene's AssetBundle releases when the scene unloads. The default ReleaseSceneWhenSceneUnloaded matches 1.22.3 behavior; OnlyReleaseSceneOnHandleRelease requires a manual Addressables.Release call.

How do I update Addressables catalogs without wasting bandwidth?

Call CheckForCatalogUpdates first to get only the stale catalog IDs, then pass that list to UpdateCatalogs. Skipping the check re-downloads every registered catalog on each launch even when nothing changed.