私はデータを保存/読み込むUnityのゲームに取り組んでいます。私はこのプロジェクトのテスト段階にあり、ゲームがiOSでの保存を拒否する珍しい状況に遭遇しました。アンドロイド、Windows上で実行するとそれだけで正常に動作し、OS X.は、ここに私の適用コードです:File.CreateがiPhone 5Sで失敗する
private string GetSavePath()
{
return Path.Combine(Application.persistentDataPath, SAVEPATH);
}
は私がSaveFile.bin
としてSAVEPATH
を定義します。以下のように私はGetSavePath()
を定義
FileStream file = File.Create(GetSavePath());
bf.Serialize(file, saveFile);
file.Close();
。下のトレースに見られるような問題は、File.Create()
と明示的であることに注意してください:
IOException: Sharing violation on path /var/mobile/Containers/Data/Application/4AE45A80-AC36-4A96-9C69-BE01CB753896/Documents/SaveFile.bin
at System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, Boolean anonymous, FileOptions options) [0x00000] in <filename unknown>:0
at System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize) [0x00000] in <filename unknown>:0
at System.IO.File.Create (System.String path, Int32 bufferSize) [0x00000] in <filename unknown>:0
at System.IO.File.Create (System.String path) [0x00000] in <filename unknown>:0
at SaveManager.Save() [0x00000] in <filename unknown>:0
at SaveManager.NewSave() [0x00000] in <filename unknown>:0
at GameManager.NewSave() [0x00000] in <filename unknown>:0
at TitleManager.NewGame() [0x00000] in <filename unknown>:0
at UnityEngine.Events.InvokableCall.Invoke (System.Object[] args) [0x00000] in <filename unknown>:0
以上のことから、ユーザーは新しいゲームを作成するために、ボタンをクリックする必要がありますので、Invoke
が呼び出されることに留意すべきです。トレース内のSystem.IO.File.Create
の問題は、上記のFileStream file = File.Create(GetSavePath());
に相当します。
デバイス情報:
- iPhone 5S
- iOSの10.1
Unityのバージョン:5.4.1f1
私は他のiOSデバイス上でテストするためには至っていません。
ちょうどこれを発見しました。それは確かに解決策です!奇妙な...まだ他のプラットフォームでも動作しています。 –