Я работаю над игрой Unity, которая сохраняет/загружает данные. Я участвую в стадии тестирования этого проекта и столкнулся с необычным обстоятельством, в котором игра отказывается сэкономить в iOS. Он прекрасно работает при запуске на Android, Windows и OS X. Вот мой применимый код:File.Create не работает на iPhone 5S
FileStream file = File.Create(GetSavePath());
bf.Serialize(file, saveFile);
file.Close();
Я определяю GetSavePath()
следующим образом:
private string GetSavePath()
{
return Path.Combine(Application.persistentDataPath, SAVEPATH);
}
Я определяю SAVEPATH
как SaveFile.bin
. Пожалуйста, обратите внимание, что проблема явно с 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 устройств.
Только что открыл это, и это действительно решение! Странно ... По-прежнему работает на всех других платформах, по крайней мере! –