LoginSignup
0
0

【Unity】StreamingAssets の初回読み込みが遅い問題を解決する手段

Last updated at Posted at 2024-05-09

皆さんは StreamingAssets を利用していますか?

私も昔は利用していました。
しかしながら、何故か初回読み込みに関して 1 秒程度かかる問題が
発生して困っていました。

また AssetBundle も結局は
StreamingAssets から読み込むため
遅くなるハズと考えました。

そこで、アプリを起動する度に
StreamingAssets にアクセスしないで済む手段を
考える事にしました。


パターンA : 初回のみ StreamingAssets から読み込んで persistentDataPath に保存しておく手段について

この方式がよく使われていると
昔の記事で読んだことがあります。

確かに persistentDataPath から読み込んだ場合は
私の環境では初回読み込み時に遅くなる現象は
発生しませんでした。

しかしながら
StreamingAssets にあるデータを消せないため
2 重にファイルが存在する事になり
アプリの容量が増えるため
少しだけナンセンスだと思いました。

そのため別の方法を考察する事にしました。


パターンB : 可能な限り初回読み込み時のデータを Google Drive に保存する手段について

ネット環境が必要になりますが
パターンAで StreamingAssets に保存するデータに関して
可能な限り GoogleDrive に保存する方法が
パターンBです。

ユーザーがトータルでダウンロードする容量は変わらないですが
StreamingAssets と違って端末に残らない点が
パターンAより優れています。

また、アプリ自体をダウンロードする際に
容量が少なく見えるためダウンロードの敷居を下げる効果もあります。

初回読み込みのタイミングのみ動作が遅くなる点と
ネット環境が必要な点が良くない点でしょうか。

基本的にメリットの方が上回るため
この方式にしない理由がないと思っています。


初回読み込みの判定について

初回読み込みの判定に関しては
私は VersionCode を起動時に保存するようにしています。

ver1.2.0 の VersionCode は 6 で
ver3.3.2 の VersionCode は 32 などと分かるため
VersionCode が 6 の場合は Google Drive から読み込みが必要で
このデータとこのデータを読み込めば良いと分かります。

VersionCode の key が存在しないならば
全てのリソースを読み込めば OK です。

面倒ならば VersionCode が現在の物より小さい場合は
全てのリソースを読み込み直しても OK です。


以上私なりの StreamingAssets の初回読み込みが遅い問題を
解決する手段について紹介しました。

もしかしたら常識なのかもしれませんが
同じことを言っている記事を見かけないため
記事にしてみました。

もっと良い方法がある場合は
是非ともコメント欄で教えて頂けると幸いです。

ネットで探しても良い解決策が見つからなかったため
「この方法が一般的」というコメントは大変助かります。

是非あなたが持つ情報を皆さんに共有して下さい。
皆さんのコメントが
この問題を皆が解決するきっかけになるかもしれません。

皆さんがこの問題を解決できることを祈っています。
閲覧ありがとうございました。

0
0
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
0
0