はじめに
前回で導入したAddressable Assetsを利用して、AssetBundleっぽい運用方法を試してみたいと思います。
使用したバージョン
Unity 2018.2.3f1
Addressables System 0.2.2 - preview
前回の状態
下記2点ができている状態だと思います。
- Addressablesウィンドウの
Default Local Group
にアセットが登録されている。 - 文字列かAssetReferenceにてアセットが読み込める。
アセットバンドルを作成する
まずは、Addressable Assetsのプレイモードを切り替えます。
デフォルトでは、Virtualになっていると思いますが、これをPackedへ変更します。
エディタで実行する際にアセットバンドルがビルドされます。
Buildボタンは、まだ未実装なため常に押せない状態になっています。
ビルド先は、AddressablesウィンドウにてDefault Local Groupを選択すると詳細部分に表示されます。
デフォルトで設定されているAssets/StreamingAssets/com.unity.addressables/[BuildTarget]
は、エディタでの実行時に作成され、終了時に削除されます。
BuildPathやLoadPathを変更するとビルドしたデータの保存先や読み込み元を変更することができます。
BuildModeでは、一つのAssetBundleにまとめるか、分割するか選ぶことができます。
現在のバージョンでは、変更していてもアセットのビルドの後に設定がデフォルトのLocalBuildPath、LocalLoadPath、Pack Togetherに戻ってしまいます。
また、Profile: DefaultというメニューからManage Profile
を選択すると、AA Profilesウィンドウが表示され、Profileを切り替えたりすることができます。
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を利用することになりそうです。