こんにちは、エンジニアのオオバです。
今まであまりアセットバンドルを作る事がありませんでした。
個人で小規模ゲーム作る時にわざわざアセットバンドルを用意することはありませんでしたし、仕事でもそういう担当になることはありませんでしたので、試しにやってみておきます。
👉DOTweenの教科書を読んでUnityアニメーションをプログラミングしてみよう!
アセットバンドルの作り方
BuildPipeline.BuildAssetBundles関数を実行することでアセットバンドルは作成されます。
| 引数 | 内容 |
|---|---|
| 第1引数 | 出力先 |
| 第2引数 | ビルドオプション |
| 第3引数 | ターゲットプラットフォーム |
サンプルコードでは第1引数の出力先を "StreamingAsssets" としています。この場合、Assetsフォルダ配下のStreamingAssetsフォルダ内にアセットバンドルが格納されます。
第2引数のビルドオプションはリファレンスの通り、色々と設定ができますが割愛します。
BuildAssetBundleOptions - Unity スクリプトリファレンス
アセットバンドル対象ファイルの指定方法
ではアセットバンドルは何が条件で作成されるのかというと、アセットバンドル名をつけたアセットがアセットバンドルビルド対象になります。
具体的には、Project内のファイル(フォルダも可)を選択して、インスペクタ下部のAssetBundleから名前をつけるだけです。
ここで、先ほどのビルドスクリプトを走らせれば、test という名のアセットバンドルが作成されます。
余談ですが、一つ一つ手入力するのは面倒くさいのでスクリプトを書いて少し自動化してみます。
選択したオブジェクトの名前をアセットバンドル名としてAssetBundle名をセットしていくサンプルコードです。
また以下の注意点に注意してください。
- アセットバンドル名はユニークである必要があります
- アセットバンドル名は小文字しか使用できません
では本題の複数のファイルを1つのアセットバンドルに含める方法です。
フォルダをアセットバンドル化してそれを実現します。

Bar、Hoge、Piyoの3オブジェクトを格納したFugaフォルダを選択状態にして、先のSetNameSelectionを実行し、AssetBundle名(fuga)を付けます。
こちらのサンプルコードでアセットを取り出します。
まとめ
- アセットバンドルはアセットバンドル名を付けたものだけがアセットバンドル化される
- フォルダをアセットバンドル化すれば複数アセットをパックできる
- 取り出す時はアセット名をキーにして取り出すか、LoadAllAssetでゴリッとゲット

筆者のXをフォローしよう
- Unity2017.1.0f3







