Amazonで商品を見るセール会場へ

UnityのAddressablesの基本|Resourcesとの違いと読み込み・解放

UnityのAddressablesは、アセットを「アドレス」で読み込み、使い終わったら解放するための仕組みです。

Resourcesフォルダとの違いから、入れ方、読み込みと解放の基本までを、公式マニュアルで整理しました。

  • Package Managerから入れ、Addressables Groupsで設定を作る
  • アセットは、アドレス、ラベル、AssetReferenceのどれかで読み込む
  • 読み込みはすべて非同期
  • 読み込んだ数だけ、解放も必要

Addressablesの実機での再現は含まず、公式ページの記載(2026年9月30日に確認)に基づきます。

仕様や数値は変わることがあるので、最新は公式ページで確かめてください。

バージョンは、Addressables 2.3.16のマニュアルに基づきます。

目次

Addressablesとは

公式の説明では、コンテンツを整理してパッケージにするツールと、実行中にアセットを読み込んで解放するAPIの組み合わせです。

  • アドレスでアセットを読み込める
  • アセットは、アプリの中に置いても、リモートから配信してもよい
  • メッシュ、シェーダー、アニメーションなどの依存関係を、自動で管理する
  • 参照カウントでメモリを管理し、プロファイリングの道具もある
  • UnityのAssetBundlesの上に作られている

Resourcesフォルダとの違い

Resourcesフォルダは、Resources という名前のフォルダに置いたアセットを、Resources.Load で読み込む仕組みです。

Resourcesの中のアセットは、ビルドに自動で含まれます。

Addressablesでは、アセットにアドレスを付けて、必要なときに読み込みます。

移行のガイドには、次の説明があります。

  • ResourcesのアセットをAddressableにすると、Resources_moved という新しいフォルダへ自動で移る
  • 既定のアドレスは、元のパスからResourcesのフォルダ名を除いたもの
  • Resources.LoadAll に直接対応するものはなく、ラベルで代わりにする
  • 解放の処理を、新しく追加する必要がある

Resources.LoadAsync を使っていた書き方は、次のように置き換えられます。

Resources.LoadAsync<GameObject>("desert/tank.prefab");
↓
Addressables.LoadAssetAsync<GameObject>("desert/tank.prefab");

Resourcesが非推奨かどうかや、起動時間への影響は、今回の公式ページでは確認できていないので書きません。

パッケージの入れ方

  1. Window > Package Manager を開く
  2. パッケージの一覧を「Unity Registry」にする
  3. Addressablesを選ぶ
  4. 右下の「Install」を押す

入れたあとは、Addressables Groupsのウィンドウを開き、「Create Addressables Settings」を選びます。

AddressableAssetsData フォルダができ、設定のファイルが入ります。

公式は、このフォルダをバージョン管理に入れるよう書いています。

Addressable Groupsウィンドウ

開き方は、Window > Asset Management > Addressables > Groups です。

列内容
Group Name / Addressable Nameグループの名前と、アセットのアドレス
Iconアイコン
Path元のアセットのパス
Labels付けたラベル
出典:公式ドキュメント(確認日 2026-09-30)

ツールバーには、グループを作るNew、ビルドと読み込み先を決めるProfile、Play Mode Script、Buildなどがあります。

アセットをAddressableにする

公式が挙げている方法は4つです。

  1. アセットのInspectorで、Addressableを有効にする
  2. InspectorのAssetReferenceのフィールドに、アセットを割り当てる
  3. Addressables Groupsのウィンドウで、グループへアセットをドラッグする
  4. Addressableに指定したフォルダの中に、アセットを置く

グループを指定しなければ、既定のグループに入ります。

読み込みの基本

読み込みの方法は3つあります。

  • AssetReference:Inspectorに割り当てる
  • アドレスの文字列
  • ラベル:同じラベルのアセットをまとめて読む

読み込みはすべて非同期で、完了したときに結果を受け取ります。

公式の例は、次の形です。

handle = Addressables.LoadAssetAsync<GameObject>(address);
handle.Completed += Handle_Completed;

完了したときに、operation.Status が AsyncOperationStatus.Succeeded かどうかで成功を判定します。

解放を忘れない

公式は、読み込んだアセットは使い終わったら解放するよう書いています。

読み込みの呼び出しごとに、対応する解放の呼び出しを対にして、メモリリークを避けます。

参照カウントは、読み込みで増え、解放で減り、0になって初めてアンロードできます。

読み込み方解放の書き方
AssetReferencereference.ReleaseAsset()
アドレスまたはラベルhandle.Release()
出典:公式ドキュメント(確認日 2026-09-30)

複数を読むLoadAssetsAsyncや、InstantiateAsyncの解放は、今回確認できていません。

次に学ぶ・作業環境を選ぶ

学習を続けたい方や、作業環境を整えたい方は、目的に合うガイドをご覧ください。

Unityのおすすめ書籍

開発PCの選び方

周辺機器の優先度

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次