Unityがデータを保存するために使うストレージパスについてまとめました。
Unity2018.4.0
Application.persistentDataPath
通常、リソースファイルなどはApplication.persistentDataPath
配下に保存します。
AssetBundleの保存先もここでOKです。
ただこの方法は、OSごとに1点ずつ注意点があります。
まずiOSはここに保存されたものをiCloudに同期してしまいます。
同期が不要であればUnityEngine.iOS.Device.SetNoBackupFlag()
にApplication.persistentDataPath
を渡して設定します。
次にAndroidですが、AndroidはiOSと違いSDカードを補助記憶装置として使うことができます。
SDカードはユーザが簡単に抜き差しできるので、これを許可する場合には取り扱いに若干注意が必要です。
もしSDカードへの保存も許可するのであれば、PlayerSettingsのOther SettingsからWrite PermissionをExternalにします。
Application.temporaryCachePath
消えてしまっても構わない一時的なデータはApplication.temporaryCachePath
に配置します。
この領域に配置されたものはOSの都合で消されたりします。
またAndroidだとユーザの操作でかんたんに削除されてしまいます。
そのため、リソースなどの保存には向いていません。
用途としてはブラウザのキャッシュのようなイメージでいいと思います。
PlayerPrefs
上記二つとは別に、PlayerPrefsという機能が用意されています。
これは主にアプリの設定情報(音量とか)を保存しておくために使われます。
保存先のパスはプラットフォーム毎にUnityが決めたものを使います。
手軽に使えますが簡単なことしかできないため、大きなデータの保存などには向いていません。