LoginSignup
47
34

More than 5 years have passed since last update.

Unity 2017.X + Android で異常にファイルロードが遅い場合の解決法

Posted at

Androidでモデルロードが異常に遅いのはなぜだぜ

Unity2017.4.3でAndroidビルドしたらResources.Loadが異常に重い。確かに50MBとか大きいファイルではあるけども、1つのファイルロードに14秒とかいくらなんでも酷すぎる。ましてやGalaxy S9 という最新機種でだ。さらにiOSでは1秒ぐらいで済むのにだ。

というわけで調べてみた

Unity 2017 の新ビルドオプション「Compression Method」

どうやら2017からビルドオプションに「Compression Method」というのが増えて、デフォルトで「Default」というのになっている。これがロードの遅さの原因のようだ。

これを「LZ4」にすると超速になる。iOSと同様、1秒ぐらいのロードに短縮された。

スクリーンショット_2018-05-31_23_38_04.png

わかってしまえばどうということないのだが、なぜデフォルトでLZ4オプションではないのかは不明だ。

「Compression Method」とは

該当のスクリプトリファレンスによると、このオプションで圧縮されるデータというのは以下のものを指す。

  1. Player settings
  2. シーンファイルや.assetファイル
  3. Resourcesの中身のファイル
  4. GIデータ
  5. ビルトイン済みのリソースファイル

ってこれ、AssetBundle以外の全てって言っていいんじゃないだろうか?

さらにドキュメントでは

Enabling CompressWithLz4 in Android might be a significant performance boost when loading data as LZ4 decompression is faster than the default Zip decompression.

とあり、意訳すると

特にAndroidでのCompressWithLz4は超絶ブーストがかかるぜ。デフォルトのZipよりも断然早いぜ

とのこと。(そこまでいうならなぜデフォルトをLZ4にしないw)

ということで、Androidでロードが遅い問題にぶつかったら真っ先にチェックしてみよう。

47
34
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
47
34