内容
ローカルデータ(StreamingAssets)に置かれたAssetBundleを使用して
ローカライズ処理を実装したときの検証。
前回は
実際のアプリで利用したデータを使ったガチな動作検証しました。
そのためプロジェクトが公開できないため「お前の実装が悪いからだろ」と思われても仕方なかったので、今回はコードを公開できるようにしました。
環境
Unity 5.4.0p4
Windows10
実行環境
Android 4.0.4
ビルドはMonoでデバッグ情報は付加しないリリースビルドで。
(IL2CPPはAssetBundleのストリップ問題がおきると面倒だったので)
結果
Unload処理を実装したことでメモリ使用量を減らすことができた。
Original[ms] | AssetBundle[ms] | Original(Memory) | AssetBundle(Memory) | |
---|---|---|---|---|
1 | 1,384 | 4,959 | 3,486,585 | 4,017,983 |
2 | 635 | 643 | 3,492,287 | 4,024,412 |
3 | 685 | 546 | 3,495,289 | 4,031,521 |
4 | 580 | 728 | 3,498,089 | 4,035,604 |
5 | 575 | 799 | 3,501,059 | 4,039,223 |
6 | 569 | 783 | 3,503,439 | 4,042,826 |
7 | 567 | 728 | 3,506,779 | 4,045,949 |
8 | 574 | 759 | 3,509,639 | 4,050,032 |
9 | 572 | 750 | 3,512,499 | 4,053,427 |
10 | 557 | 768 | 3,515,359 | 4,057,270 |
Average | 670 | 1,146 | 3,502,102 | 4,039,825 |
Max | 1,384 | 4,959 | 3,515,359 | 4,057,270 |
Min | 557 | 546 | 3,486,585 | 4,017,983 |
Originalとの比較 | ||||
Average | 1.71 | 1.15 | ||
Max | 3.58 | 1.15 | ||
Min | 0.98 | 1.15 |
特出しているのは初回で、ロードとアンロードが実行されるので
シーンの読み込みに5秒近くかかってるということ。
前回との差異
今回はAssetBundleの読み込み処理をUnity社が作ったAssetManagerを使用しています。
https://www.assetstore.unity3d.com/jp/#!/content/45836
(メンテナンスされていないので警告が結構でますが、、、)
画像はUnity社が提供しているUnityちゃんのもので
実装についてもUnity社公式のものだけで実装しました。
解決したい点
AssetBundleを利用するときメモリ使用量が多くなってしまうのは仕方ないことですかね!?
メモリ使用量を抑えつつ、読み込みも早くなる手段を知りたいです。
感想
やっぱUnityリソース読むの遅い。
うーん、困った。