unity-addressables

v2026.09.24

Unity Addressables — AssetReference, async loading, labels, groups, build profiles, remote content, Cloud Content Delivery integration, content catalogs and updates. USE WHEN: replacing `Resources.Load`, async asset loading, scene streaming, remote content, DLC delivery, runtime asset hot-swap, splitting builds for size. DO NOT USE FOR: editor-time asset queries (use AssetDatabase); legacy Asset Bundles workflows (Addressables wraps them).

GitHub
安装命令
npx skhub add claude-dev-suite/unity-addressables
Markdown
SKILL.md

Unity Addressables

Why Addressables (vs Resources / direct refs)

  • Resources/ includes everything in build → forces every asset in memory.
  • Direct prefab references → load immediately with the scene.
  • Addressables: lazy, async, remote-capable, content-update-friendly.

AssetReference

public class EnemySpawner : MonoBehaviour {
    [SerializeField] private AssetReferenceGameObject enemyPrefab;
    [SerializeField] private Transform spawnPoint;

    public async void Spawn() {
        AsyncOperationHandle<GameObject> handle =
            enemyPrefab.InstantiateAsync(spawnPoint.position, Quaternion.identity);
        var enemy = await handle.Task;
        // listen for destroy → release
        enemy.GetComponent<Enemy>().Killed += () => Addressables.ReleaseInstance(enemy);
    }
}

InstantiateAsync reference-counts; release with ReleaseInstance to free memory.

Loading by label

var handle = Addressables.LoadAssetsAsync<AudioClip>("music", null);
var clips = await handle.Task;        // all assets with label 'music'
// later
Addressables.Release(handle);

Build profiles

  • Development — local groups, fast iteration.
  • Release — remote groups (CDN URL), packed bundles.

Set in Window > Asset Management > Addressables > Profiles. CI builds invoke Addressables.BuildPlayerContent() or AddressablesPlayerBuildResult.

Content updates (without rebuilding the player)

  1. Mark a group as Content Update Restriction = Can Change Post Release.
  2. Build content → produces addressables_content_state.bin (commit).
  3. Later, Build > Update a Previous Build → produces incremental bundles → upload to CDN. Player downloads the new catalog on launch.

Cloud Content Delivery (Unity Gaming Services)

  • Bucket per environment (dev/staging/prod).
  • Badge tags ("release-1.2") to pin clients to specific releases.
  • Authentication via UGS for entitled content.

Anti-patterns

Anti-patternFix
Resources.Load for big asset graphsMigrate to Addressables
Forgetting to ReleaseReference-count leaks → run Profiler memory snapshot regularly
Massive single groupSplit by usage (per-level, per-language, music vs SFX)
Sync WaitForCompletion on remote loadsAlways async; show loading UI
Different bundle compression per platform forgottenDefault LZ4 for all desktop/mobile; Uncompressed for WebGL on tiny assets

Production checklist

  • No Resources/ folders left in production code paths
  • Groups split by load pattern
  • Labels used for batch loads (music, vfx-rare, boss-only)
  • CDN URL profile-driven, not hardcoded
  • addressables_content_state.bin checked into git
  • CI builds Addressables before player build
  • Memory profiler shows expected residency after scene load
发现
标签

此技能尚未发布标签。

版本
最新版本元数据

版本

v2026.09.24

发布时间

Sep 24, 2026

分类

未分类

许可证

MIT

源路径

skills/gamedev/unity-addressables

默认分支

main

最新提交

9496306

Tree SHA

fe4e2f1