なんとなくわかるかもしれない
AssetBundle
@hidesuke
このスライドの対象者
•  Unityと通信するサーバプログラムを作っていて、
AssetBundleを使わないといけない人
•  偉い人に「AssetBundleってなに?」と聞かれたけど、
自分もよくわかってないプロマネ
•  「AssetBundleを配布したいです(キリッ」とだけ言われて
サーバを作らないといけないサーバ構築の担当者
Unityのことはよくわかってないけど、
AssetBundleについて知らないといけない人たち
注意
•  このスライドではAssetBundleの作り方につ
いては言及しません
•  Unity内でのAssetBundleの使い方について
は言及しません
•  詳しく知りたい方はリファレンス・マニュア
ルを読んでください
–  http://docs.unity3d.com/Documentation/
ScriptReference/AssetBundle.html
–  http://docs-jp.unity3d.com/Documentation/
Manual/AssetBundlesIntro.html
AssetBundleとは
•  Unityの外部に持つアーカイブファイル
– UnityEditor上で生成します
•  サーバに配置して、Unityのクライアント
がダウンロードして利用する
SERVER
AssetBundle
DOWNLOAD
UnityからAssetBundleの読み
込み
•  UnityはAssetBundleが置いてあるURLか
らAssetBundleを取得する
– WWW.LoadFromCacheOrDownload(url,
version)
みたいな指定で……
ここまでのまとめ
UnityEditor
AssetBundle
AssetBundle
AssetBundle
AssetBundleは複数ファイル
あってよい
•  でっかいAssetBundle、一個だけで運用
とかしないっすよね……
•  クライアント側でキャッシュできますし
おすし
– 無駄なダウンロードは回避できる
•  AssetBundleファイル毎にユニークな
URLが必要
サーバプログラムどう書く?
client server
1)<AssetBundle URL
2)<AssetBundle URL <
URL1,<URL2,<URL3,<...
3A1)<URL1 AssetBundle
4A1)<URL1 AssetBundle <
3A2)<URL2 AssetBundle
4A2)<URL2 AssetBundle <
AssetBundleのキャッシュ
•  LoadFromCacheOrDownloadで取得し
たAssetBundleはクライアントにキャッ
シュされる
– AssetBundleを作るときにバージョン番号を
設定できる
– この関数の第2引数にはAssetBundleのバー
ジョン番号を指定できる
LoadFromCacheOrDownloadの動き
LoadFromCacheOrDownload(url,<version)
Cacheにある?
Cache
Download <
無い
有る
低い
同じ or 高い
AssetBundleの注意点
•  中身が同じAssetBundleでも iOS用と
Android用、それぞれを用意する必要があ
る
•  iOS用のAssetBundleにはロジックを変更
するようなものは含められない
– 画像やモデル、音楽、テキストなどの静的な
アセットしか配ることができない
おわりに
•  筆者もよくわかってないので間違いなどあ
れば教えて下さい m(__)m
参考文献
•  Unityマニュアル
– http://docs-jp.unity3d.com/
Documentation/Manual/
– http://docs-jp.unity3d.com/
Documentation/Manual/
AssetBundlesIntro.html
– http://docs-jp.unity3d.com/
Documentation/Manual/abfaq.html

(Unityよくわかってない人のための)なんとなくわかるかもしれないAssetBundle