ここでは、Androidのファイルアクセスに関して説明します。
アクセス可能なストレージ
- CRIWARE Unity Plug-inは、StreamingAssetsディレクトリ内へのアクセスを提供しています。
UnityプロジェクトをAndroid向けにビルドする場合、これ以外のローカルストレージへのアクセスも可能です。
以下にアクセス可能なストレージと、対応するパスを示します。
-
[SDカード] "/sdcard/..."
-
[パッケージ固有ディレクトリ] "/data/data/<java style package name>/..."
android.os.Enviornmentクラスには、get<Storage name>Directoryメソッドが用意されています。
これらを使って、異なるディレクトリのFileインスタンスを得ることができます。
取得したFileインスタンスからは、getPath()メソッドで各種ディレクトリパスを入手可能です。
CRIWARE Unity Plug-inは、ここで得られる一部のパス以下のファイルに対するアクセスを提供します。
上で示したストレージへアクセスする際には、対応するパスをCriFsUtilityクラスの各メソッドに与える必要があります。
CRIライブラリで扱えるファイルサイズの上限について
- Android版のCRIライブラリがアクセス可能なファイルのサイズ上限は2GB未満です。
2GB以上のファイルにアクセスした場合、強制終了などの不正な動作を引き起こす可能性があります。
CPKファイルサイズが2GB以上になった場合は、2GB未満の複数CPKファイルに分割して下さい。
- 注意
- assetsフォルダ内のファイルサイズ制限は、Android OSのバージョン番号や機種によって異なります。
例えば、TOSHIBA Regza Tablet(OS 3.2)上にて、assets内の800MB以上のCPKファイルをバインドした際
ファイルのメモリマップの作成に失敗した旨のエラーメッセージがOS側から出力された例が報告されています。
OS側で設定されているアプリごとの仮想メモリサイズ上限にご注意下さい。
URL指定によるファイルアクセスの注意事項
- CRIWARE Unity Plug-inのURL指定ファイルアクセス機能を使用する場合、ビルド時にUnityエディタのPlayerSettingsに注意して下さい。
ビルド前に、Per-Platform SettingsのInternet Accessという項目の値を、"Require"に変更して下さい。
この値を"Auto"に設定した場合、ロードが失敗する場合があります。