Application
クラスには、Unityアプリケーションでファイルのパスを取得するためのプロパティがいくつか用意されています。それぞれ用途に応じて使い分けが可能です。
1. Application.dataPath
- 概要: UnityプロジェクトのAssetsフォルダに対応するパスを取得します。
- 用途: ゲーム内のリソースにアクセスしたり、読み込みが必要なファイルを参照するのに適しています。
- 注意: このパスには書き込み権限がないため、アセットの配置や管理のみで、ファイルの書き込みや保存には使用できません。
- 例:
string path = Application.dataPath + "/Resources/myFile.txt";
2. Application.persistentDataPath
- 概要: デバイス上に永続的に保存されるファイルのパスを取得します。
- 用途: 設定ファイルやユーザーデータなど、アプリを閉じても保存しておきたいデータに使用します。
- プラットフォーム別の保存場所:
- Windows:
C:\Users\ユーザー名\AppData\LocalLow\会社名\アプリ名
- macOS:
~/Library/Application Support/会社名/アプリ名
- iOS/Android: アプリのサンドボックス内
- 例:
string path = Application.persistentDataPath + "/userData.json";
3. Application.temporaryCachePath
- 概要: 一時ファイルの保存に適したパスを提供します。アプリ終了やOSのキャッシュ削除で消去される可能性があります。
- 用途: キャッシュや一時的なデータ保存に適しています。
- 例:
string path = Application.temporaryCachePath + "/tempData.tmp";
4. Application.streamingAssetsPath
- 概要: StreamingAssetsフォルダのパスを取得します。StreamingAssetsフォルダ内のファイルはビルド時にそのままパッケージに含まれ、読み込み専用です。
- 用途: 初期データや外部リソースのように、書き込みは不要だが読み込みが必要なファイルに適しています。
- 例:
string path = Application.streamingAssetsPath + "/config.json";
5. Application.consoleLogPath
- 概要: ログファイルの保存場所を取得します。
- 用途: コンソールログのファイルパスを確認したいときに使用します。ただし、通常はアプリケーションで直接利用することは少ないです。
6. Application.absoluteURL
- 概要: WebGLビルドでアプリがホストされているURLを取得します。
- 用途: WebGL向けに配信されるアプリケーションで、アプリのベースURLが必要な場合に使用します。
まとめ
それぞれのプロパティには特定の役割と用途があり、シーンデータの保存やユーザーデータの保存などで使い分けることで、適切なファイル管理が可能です。