unity-addressables-design

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

Updated Oct 13, 2025
One-click install
npx skills add https://github.com/Darth-Carrotpie/ProxyCore --skill unity-addressables-design-darth-carrotpie
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: unity-addressables-design
Source: https://github.com/Darth-Carrotpie/ProxyCore/tree/main/.agents/skills/unity-skills/skills/addressables-design
Command: npx skills add https://github.com/Darth-Carrotpie/ProxyCore --skill unity-addressables-design-darth-carrotpie

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Writing Unity Addressables code from memory often produces hallucinated APIs, because training data mixes the 1.22.3 (Unity 2022) and 2.9.1 (Unity 6) surfaces, causing compile errors, memory leaks, and double-release exceptions. This Skill grounds every rule in cited source files and line numbers so generated Addressables code compiles and behaves correctly on the target version. ## Core Features & Use Cases - Version-tagged API rules: Covers initialization, async operation handles, asset and scene loading, catalog updates, downloads, and AssetReference, with explicit 1.22.3 vs 2.9.1 differences such as removed non-Async methods, IList<object> overload removal, and the new SceneReleaseMode enum. - 30 verified pitfalls: Documents concrete hallucination patterns (double release, Destroy on InstantiateAsync results, WaitForCompletion on WebGL) with source anchors and fixes, plus a legacy-to-2.9.1 migration table. - Use Case: When asked to write a scene-loading flow for Unity 6, the Skill routes to SCENE.md and produces LoadSceneAsync code with the correct SceneReleaseMode default, activateOnLoad handling, and UnloadSceneAsync release semantics instead of obsolete 1.x calls. ## Quick Start Ask the agent to write or review Unity Addressables code, such as loading assets by label or migrating a project from Addressables 1.22.3 to 2.9.1.

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?▼

Call LoadAssetAsync or InstantiateAsync and always pair it with a matching Release or ReleaseInstance call, since every handle starts with refcount 1 and the bundle only unloads at zero. Never use GameObject.Destroy on instances from InstantiateAsync.

What changed between Addressables 1.22.3 and 2.9.1?▼

Addressables 2.9.1 removed all obsolete non-Async methods like LoadAsset and Instantiate, replaced IList<object> multi-key overloads with IEnumerable, and added the SceneReleaseMode enum for scene loads. LegacyResourcesLocator and diagnostic event types were also removed.

Why does Addressables code fail to compile after upgrading to Unity 6?▼

Unity 6 ships Addressables 2.9.1, which removed every [Obsolete] API from 1.22.3 such as Addressables.Initialize, LoadAsset, and UnloadScene. Replace each with its Async-named equivalent and switch IList<object> key arguments to IEnumerable.

Does WaitForCompletion work on WebGL Addressables builds?▼

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, reserving WaitForCompletion for editor tests guarded by platform defines.

How do I update Addressables catalogs for hot updates?▼

Call CheckForCatalogUpdates first, then pass the stale catalog list to UpdateCatalogs, releasing all open asset handles beforehand. On 2.9.1, UpdateCatalogs offers an autoCleanBundleCache parameter to remove outdated bundles in one call.

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 load concurrently via Addressables.LoadAssetAsync with ref.RuntimeKey.