Help us understand the problem. What is going on with this article?

Addressable AssetsでAssetBundleっぽいことしてみた

More than 1 year has passed since last update.

はじめに

前回で導入したAddressable Assetsを利用して、AssetBundleっぽい運用方法を試してみたいと思います。

使用したバージョン

Unity 2018.2.3f1
Addressables System 0.2.2 - preview

前回の状態

下記2点ができている状態だと思います。

  • AddressablesウィンドウのDefault Local Groupにアセットが登録されている。
  • 文字列かAssetReferenceにてアセットが読み込める。

addressable-assets3.jpg

アセットバンドルを作成する

まずは、Addressable Assetsのプレイモードを切り替えます。
デフォルトでは、Virtualになっていると思いますが、これをPackedへ変更します。

change-play-mode.jpg

エディタで実行する際にアセットバンドルがビルドされます。
Buildボタンは、まだ未実装なため常に押せない状態になっています。
ビルド先は、AddressablesウィンドウにてDefault Local Groupを選択すると詳細部分に表示されます。

build-path.jpg

デフォルトで設定されているAssets/StreamingAssets/com.unity.addressables/[BuildTarget]は、エディタでの実行時に作成され、終了時に削除されます。

BuildPathやLoadPathを変更するとビルドしたデータの保存先や読み込み元を変更することができます。
BuildModeでは、一つのAssetBundleにまとめるか、分割するか選ぶことができます。
現在のバージョンでは、変更していてもアセットのビルドの後に設定がデフォルトのLocalBuildPath、LocalLoadPath、Pack Togetherに戻ってしまいます。

select-load-path.jpg

また、Profile: DefaultというメニューからManage Profileを選択すると、AA Profilesウィンドウが表示され、Profileを切り替えたりすることができます。

aa-profiles-window.jpg

Manage Profile listボタンからProfileの管理をすることができます。
Add Entry/Remove Entryで項目を増やしたり、減らしたりすることができます。

まとめ

  • プレイモードをPackedへ変更する。
  • エディタでの実行時にAssetBundleがビルドされる。(ビルドボタンは未実装。)
  • Default Local Groupなどに設定されているLocalBuildPathやLocalLoadPath、BuildModeでAssetBundleの読み書きや設定を変更できる。
  • 上記の設定はエディタでの実行時にデフォルト値に戻る。

サーバーを立てる知識がなく、実際にAssetBundleを配置してダウンロードしてみるなどはできませんでした。
しかし、なんとなくAssetBundleを作成するイメージができたと思います。

番外編(一応こんなこともできるよAddressables)

  • Addressables.ReleaseAsset: アセットを開放する。
  • Addressables.Instantiate: プレハブをシーン状に生成する。
  • Addressables.ReleaseInstance: GameObjectを開放する。
  • Addressables.LoadScene: シーンを読み込む。
  • Addressables.UnloadScene: シーンを破棄する。
  • Addressables.PreloadDependencies: 関連するAssetBundleをロードする。

元々のAssetBundleでできていたことは一通りできそうです。
関連ファイルを読み込んでおくメソッドがあるため、どのアセットバンドルにアセットがあるかなどはあまり気にしないでも良さそうでした。
またキャッシュの削除に関しては、今まで通りにキャッシュのAPIを利用することになりそうです。

参考

Addressable Assets Systemを完全に理解する - Qiita

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away