※ これは 2022/07/22 時点の Unity 2022.1.10f1 Addressables v1.20.3 の情報です
最新版では動作が異なる可能性がありますのでご注意ください
Aseprite に慣れてきたのでまた Unity に戻り、Addressables というパッケージライブラリを使ってみたい
Resources ディレクトリを使用する方法とちがい、ローカルアセットもどこかの配信サーバーに置いたリモートアセットも同じような取り扱いで読み込めるようになるらしい
とりあえず使えるようになるような設定まで
スポンサードリンク
まずは UnityEditor のメニューから [Window] - [Asset Management] - [Addressables] - [Groups] を選び、Addressables Groups のダイアログを表示
するとおもむろに「Create Addressables Settings」のボタンが表示されるので押下
これでデフォルトの設定が新規作成され、Addressables Groups のダイアログに Default Local Group が表示される
プロジェクト内に配置した適当なねこ Sprite をこの Default Local Group にドラッグドロップで追加登録
次に Play Mode Script のコンボボックスから「Use Existing Build」を選択
さらに Build コンボボックスから 「New Build」-「Default Build Script」を選択して Addressables アセットのビルドを実行
これで使えるようになったはず
試しに下記のような Image を画面中央に置いただけのシーンを作成
「Test」の GameObject に下記のような Test.cs のスクリプトを貼り付け、Image コンポーネントを Test.thumbnailImage に設定した
using UnityEngine; using UnityEngine.AddressableAssets; using UnityEngine.ResourceManagement.AsyncOperations; using UnityEngine.UI; public class Test : MonoBehaviour { [SerializeField] private Image thumbnailImage = null; private AsyncOperationHandle<Sprite> handle = default; public async void Start() { // Addressables 経由で Sprite を読み込んで表示 this.handle = Addressables.LoadAssetAsync<Sprite>("Assets/Sprites/cat.png"); this.thumbnailImage.sprite = await this.handle.Task; } public void OnDestroy() { // いらなくなったら handle を Release する Addressables.Release(this.handle); } }
LoadAssetAsync に指定するアドレスは Addressables Groups のウィンドウの 「Addressables Name」や、登録した Sprite を Inspector で表示した際に 「Addressables」の横に表示される Assets/Sprites/cat.png
を指定する
お試し実行