AssetBundleのお話(備忘録)

 Asset Bundleについてのメモ。備忘録も兼ねて書いていこうかと。

 まだまだ書きかけです。今後整理してまとめ直す予定です。

 

 

  • 目標

 シーンやオーディオ、プレハブ、テクスチャなどをサーバ上にあげてアプリの容量を削減(100MB制限)、及びロード時間削減。

 アップデートなしでステージ追加とかしたい。

 

 

  • 手順
  1. AssetBundleManagerをアセットストアからDL、インポート。
  2. 適当にシーンを作り。モデルを適当に配置。保存("Test")
  3. SwitchPlatformでWebGLに。
  4. シーンにタグをつけて("test") Asset->BuildAssetBundleでアセットバンドル作成
  5. FinderでAsset上位ディレクトリにアクセス。
  6. AssetBundleManagerの機能でローカルサーバ立ててもらいテストしようと試みたがなぜかエラー→Dns.GetHostEntry(Dns.GetHostName())でエラー。どうやらホスト名をIPアドレスに名前解決できないらしい。windowsではできたのに。なぜ?ファイアーウォールは関係ない。
  7. 仕方がないので自力でMAMPでローカルサーバー立ててそこに配置。AssetBundleのWebGLのフォルダごとコピー。(http://localhost)
  8. アドレス設定の変更("AssetBundleServerURL"のl1、LoadScenes.csのl32、BuildScript.csのl14をhttp://localhostに変更)
  9. AssetBundleManagerのシーンローダーのSceneを開きLoderオブジェクトの設定をいじる(SceneAssetBundleをtest、Scene NameをTest)
  10. PlayerSetting->StripEngineCodeをdisable
  11. ビルドアンドラン(ビルドに含めるのはしーんろーだーのSceneだけ)
  12. やったね

 

アセットバンドルなしとありのファイルサイズの比較

f:id:y9fav:20170902001838p:plain

 

  • メモ
  1. AssetBundle置き場の検討。DropBoxの共有だと色々試したけどできなかった。(単純に階層構造ではだめでコードをなんとかかんとかしなければいけない。AssetBundleManager使わずに直接指定すれば...->依存関係をなんとかしなきゃいけない...)
  2. 個人のサーバで運用?レンタルサーバ?AWS?(費用対効果も含めて要検討)
  3. AssetBundleの暗号化、復号化、バージョン管理、150日問題、キャッシュ上限etc...自力でコード描くしかない。バージョン管理は凄く単純なやつならなんとかできる...かも。
  4. 今はまだその時ではない。

 

 

見にくい...