Unity でゲームを制作してしばらくすると、プロジェクトの容量が10GBを超えるほど非常に大きくなっていることに気付きました。
プロジェクトフォルダ内を調べてみると、主に Library ディレクトリ以下に容量の大きなファイルが集中しているようでした。
とあるプロジェクトでは Library だけで8GBとなり、ゲームで使用するためのファイルがあるフォルダ Assets よりも大きくなっていました。
フォルダ名から、キャッシュされたファイルがいくつかあることがわかります。
容量が大きいとプロジェクトフォルダの移動やバックアップに時間がかかるので、プロジェクトの根幹に関わらないキャッシュは取り除けると嬉しいです。
これらのキャッシュを削除して問題ないかどうか実際に検証してみました。
実行環境は以下の通りです。
- macOS Monterey
- Unity 2021.2.7f1
Libraryフォルダをまるごと消してみた
Unity を終了し、プロジェクトフォルダ内の Library をルートからまるごと削除した後、再度 Unity を起動しプロジェクトを開いてみます。
すると、起動時に約3分間のロードが発生し、新たに Library が自動的に作成されました。ロード時間がかかるのは全てのアセットをロードし直しているからのようです。
ロードが終了すると、プロジェクトが無事に起動しました。
コンソールには「アセットデータベースが見つからなかったのでLibraryを作り直した」という旨のログが表示されています。エラーはありませんでした。
通常であれば、前回開いていたシーンが自動的に読み込まれるはずですが、キャッシュを削除したためか空の Untitled という名前の空のシーンが表示されました。
手動でゲームのシーンを開き、実行してみます。
結果は……問題なく動作しました!
テクスチャのキャッシュが完了していないためか、一瞬だけピンク色の真四角な画像が出ることがありましたが、それも最初だけでした。
以上のことから「Library フォルダ自体を削除しても、必要なファイルはプロジェクト起動時に再度生成され、実行時必要なキャッシュも随時作られるため問題ない」と言えます。
ただ、当然ですが PlayerPrefs による保存情報も消えるので、特定の状況でのデバッグ中などという場合は気を付ける必要があるかもしれません。
再実行後の Library の中身の一部(容量の大きなもの)は以下のようになり、容量が5Gほど削減されました。特に Artifacts の容量が大幅に減っています。
プラットフォームを切り替えたりリリースのためにビルドを行ったりすると容量はまた増加すると思いますが、バックアップや移動をする場合はそれらのキャッシュは削除して問題ないでしょう。
以上、UnityプロジェクトのLibraryに含まれるCacheを削除してプロジェクト容量を削減する方法についてでした。