Unity の Resources フォルダは使わないほうがいい

カテゴリ:unity

The Resources folder

Resources フォルダにリソースをなんでも配置すると,管理が困難になりアプリの起動時間やビルド時間が増加する. また斬新的なコンテンツのアップグレードがやりづらい.

Resources フォルダの適切な使用例

Resources フォルダはプロトタイピング時または以下のすべての条件を満たすアセットを格納するのに適している.

  • アセットのメモリ消費量が少ない
  • プロジェクトの全期間で参照される
  • 修正される可能性が低い
  • プラットフォームごとに変更する必要がない

上記の条件を満たすアセットの例としては,FacebookApp ID のようなアセットを外部からダウンロードするのに必要なデータや, 使用頻度の高いプレハブ,シングルトン MonoBehaviours がある.

Resources フォルダ内のアセットのシリアル化

プロジェクトのビルド時,Resources という名前のフォルダの中にあるアセットは一つのファイルにまとめてシリアル化される. アプリの起動時に,それらのアセットを効率的にロードするためのルックアップテーブルが作成される. このルックアップテーブル作成は回避できない. Resources フォルダに 10,000 個のアセットがある場合,ローエンドのモバイルデバイスではその処理に数秒かかる.

代案

  1. プラットフォームごとにアセットを管理したいならばアセットバンドルを使う
  2. リリースするときにインスペクタからアセットを設定する
  3. 外部リソースをロードする方法 を使う.