いさぽん部屋(isapon.com)

ゲーム系プログラマによる特に方針のないブログ。技術系とカレー、ラーメンネタ多めだったはずが、最近はダイエットネタ多め。

UnityでAssetBundleのON/OFFをなるべく自動化する

ご無沙汰しています。家でインターネット接続ができるようになりました。


あらためて「安定した収入がある」ということのすばらしさを実感しています。


仕事してもお金にならなかっただけで、仕事をしていなかったわけじゃないんです。


Unity触ってます

プロのプログラマーが触るもんじゃないなーと思いつつ。


なんとなくUnity触ってます。


気は乗らないけど、食うためにはしゃーないのです。


AssetBundle にデータを放り込もう

スマホアプリの場合、アプリのサイズ制限があります。


そのためアセットの容量が多くなってきたらアセットを別ファイル化し、ダウンロードする方式をとらざるを得ません。


Unity だと AssetBundle という機能を使います。


まぁこのAssetBundleという機能がク……じゃなくて、おうんこ的な作りだと思ってますが……


アセットをAssetBundleに移行するには、Unityエディタ上で移行したいアセットを選択。


Inspectorの下にAssetBundleという項目が出てくるので(最初はとりあえずなんでもいいので)名前を入力します。


が、これ、メンドクサイ。


容量が多くなってきたのでAssetBundle化するわけなので、この作業をしないとならないファイルが多い。


数百とか。


アセットをマウスで選んでぽちぽち。


泣ける。


自動化じゃ!

そこで、この作業をしたときにファイルにどういう変化あるのかを調べました。


わかったことは、対象となるアセットのメタファイルに埋め込まれているということ。


例えば、character/c01 というアセットの場合は character/c01.meta が対象です。


こいつをテキストエディタで開けば「assetBundleName: 」とそのものが入っています。


あとはこいつを、コマンドなどを駆使して書き換えればOKです。


これでAssetBundleに入れるも、戻すも簡単。