【Unity】Addressables について簡単にさわりだけまとめ

  • URLをコピーしました!
目次

はじめに

UnityのAddressables について

  • 便利そうだけどまったく使えていない。
  • とりあえず、とっかかりだけ知りたい。

と思ったので簡単にまとめた記事になります。

  • Unity 2020.3.27
  • Addressables 1.18.19

Addressables とは

AddressablesResourcesAssetBundleの良いとこ取りをしたシステムです。Unity2018.2から使えるようになりました。

導入

Package ManagerウインドウでPackages: Unity Registryに変更してAddressablesを探してInstallします。

インストールが完了したらWindow>Asset Management>Addressables>Groupsでウィンドウを開きCreate Addressables Settingsを押します。

そうするとAssetsフォルダ直下にAddressableAssetsDataフォルダができます。Addressables関連の設定はここに保存されます。

また、Addressablesのインストール以降はInspectorの上部にAddressableチェックボックスが表示されるようになります。これをチェックすることでAddressablesで管理する素材になります。

ローカルからロードしてみる

導入が済んだら、さっそく画像をAddressable素材にしてスクリプトからUIを動的に差し替えてみます。

  • ちなみに画像素材はこちらのアセットを使用しました。

任意の画像を選択してInspectorAddressableにチェクを入れると右側にパスが自動で入ります。ただ、これが画像を呼び出す文字列になるので管理しやすいように変更します。ここでは「Spades.png」としました。

Window>Asset Management>Addressables>GroupsからAddressables Groupsウインドウを開きます(先の文字列はこちらでも変更できます)

Play Mode ScriptUse Asset Databaseにします。

次に画像をロードしてUIに反映するスクリプトを用意します。

using UnityEngine;
using UnityEngine.AddressableAssets;//Addressablesを使うのに必要
using UnityEngine.UI;//UIを使うのに必要

public class AddressableSample : MonoBehaviour
{
  [SerializeField] Image Img;

  async void Start()
  {
    //Spriteをロードする
    var sprite = await Addressables.LoadAssetAsync<Sprite>("Spades.png").Task;

    //UIに反映
    Img.sprite = sprite;

    //使い終わったらメモリから開放する
    //Addressables.Release(sprite); <<今回は使わない
  }
}

スクリプトが出来たら適当なオブジェクトに貼り付けてImageをアサインします。

Playモードで画像が差し替えられることを確認します。

リモートからロードしてみる

Addressablesの真骨頂。サーバーにアップされた素材をスクリプトから動的に差し替えてみます。

  • 読み込み先を変更するだけです。先に用意したスクリプトはそのまま。
  • Addressables GroupsウインドウでDefault Local Groupを選択します。
  • InspectorBuildPathRemoteBuildPathにします。
  • 同じくInspectorLoadPathRemoteLoadPathにします。

Window>Asset Management>Addressables>SettingsからAddressable Asset Settingsを開きます。

  • Player Version Override に管理しやすい文字列を入れます。ここでは「a1」としました。
  • Build Remote Catalogをチェックします。
    • BuildPathRemoteBuildPathにします。
    • LoadPathRemoteLoadPathにします。

Addressables Groupsウインドウに戻ってBuild>New Build>Default Build Scriptでアセットバンドルをビルドします。

問題なければプロジェクトファイルの中にServerDataフォルダが作成され、下記3つのファイルが書き出されているはずです。

  • catalog_xx.hash
  • catalog_xx.json
  • defaultlocalgroup_assets_all_xxxx.bundle

catalogは素材の依存関係情報と、その変更チェック用のファイルです。.bundleは素材その物を圧縮したファイルです。

レンタルサーバーやクラウドストレージなどに3つのファイルをアップロードします。

Unityに戻りWindow>Asset Management>Addressables>Profilesを選択してAddressables Profilesを開きます。RemoteLoadPathを先の3ファイルをアップしたURLに変更します。

Addressables GroupsウインドウのPlay Mode ScriptUse Existing Buildに変更します。Use Existing Buildにすることでアセットバンドルから素材を読み込むようになります。

Playモードで画像が差し替えられることを確認します。

サーバーの素材を変更してみる

ストアでアプリを更新しなくても中身を変更できるのがAddressablesの大きな利点なので、ついでにそれも試してみます。

  • アプリをリリース済みの想定で、読み込み先もスクリプトもそのまま。アセットバンドルだけビルドし直してサーバーの素材を変更します。
サーバー上のスペード画像をハート画像に変更してみる

先程と別の画像の文字列を「Spades .png」にします。

あとは先に行った手順を繰り返します。

  • Addressables GroupsウインドウでBuild>New Build>Default Build Scriptでアセットバンドルをビルドします。
  • 書き出された3つのファイルをサーバーへアップします。

Playモードで画像が差し替えられることを確認します。

「Spades .png」という名のハート画像が表示されました。

以上です。

参考

(:3[kanのメモ帳]
ResourcesのシンプルさとAssetBundleの自由度を実現したAddressable Assetsとは(脱Preview記念リライト)【U... この記事でのバージョン Unity 2018.4.8f1 Addressables 1.2.3 はじめに Unityの鬼門の一つに「画像や音源等のリソースをどう管理するか」というものがあります。「Resourc...
LIGHT11
【Unity】Addressableアセットシステム入門 - 3つのメリットと基本的な使い方を紹介 - LIGHT11 UnityのAddressableアセットシステムの概要とメリット、基本的な使い方をまとめました。
てっくぼっと!
Addressable Assets Systemをちゃんと導入するための技術検証まとめ Unityのアセット管理システムであるAddressable Asset Systemについて調査・検証を行い…
はなちるのマイノート
【Unity】サーバーにアセットバンドルを配置し、Addressable Asset Systemでロードしてみる - はなちるのマ... はじめに 前回Addressable Asset Systemの基本操作についての記事を書いたのですが、今回はサーバー上(ロリポップ)にbundleを配置し、それをダウンロード&利用してみたいと...

この記事が気に入ったら
フォローしてね!

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