エディター上では動いたのにビルドすると動かない。
Androidに書きだした時だけ動かない。
今度はエディターでエラーが……。
という試行錯誤の果てに解決した、どの環境でも問題が出ないために重要な三項目をまとめました。
- Edit>Project setting>PlayerSetting
でインスペクターに出てくるAndroidアイコンをクリック。
OtherSettingのWrite AccessをExternal(SD Card)に。
- 読み込みも書き込みも必ずFilestreamで。読み込んだらちゃんとクローズする。
StreamReader srA = new StreamReader (fiA.OpenRead (), Encoding.UTF8); jsonString = srA.ReadToEnd (); srA.Close();
- Application.dataPathを使うとアプリファイルの ”.apk” まで取得してしまうので、パスが変になって書き込みに失敗する。Application.persistentDataPathのほうを使う。
jsonFilePath = Application.persistentDataPath + "/" + jsonfilename + ".txt";
Android,Windows,UnityEditor全てでちゃんと動く方法を探るのに何時間もかかりましたが、これで行けるはず。