Страница 1 из 1

Сохранения для игр на телефон.

СообщениеДобавлено: 26 сен 2017, 13:07
Fox_game
Возникла проблемка. Я сделал игру с системой сохранений. На компе она работает а на телефоне - нет. Я так понял, что на компьютере игра может свободно создать папку ("saves") а телефон не предоставляет такой возможности. Подскажите как можно сделать так, чтоб игра создавала эту самую папку по указанному пути (например Android/obb)? И загружала оттуда же?

Re: Сохранения для игр на телефон.

СообщениеДобавлено: 27 сен 2017, 01:18
Alex_Hell
1й незащищенный - на мобилах пашет - крякабельный легко
https://docs.unity3d.com/ru/530/ScriptR ... Prefs.html

2й защищенный - варианты есть менее крякабельные
https://habrahabr.ru/sandbox/92973/
https://www.assetstore.unity3d.com/#!/content/32357

Re: Сохранения для игр на телефон.

СообщениеДобавлено: 27 сен 2017, 11:19
Fox_game
Alex_Hell писал(а):1й незащищенный - на мобилах пашет - крякабельный легко
https://docs.unity3d.com/ru/530/ScriptR ... Prefs.html

2й защищенный - варианты есть менее крякабельные
https://habrahabr.ru/sandbox/92973/
https://www.assetstore.unity3d.com/#!/content/32357

это немного не то, что я хотел...
Это я знаю. Мне надо чтоб на телефонах создавалась папка в проводнике.
Вот у меня есть код:
Синтаксис:
Используется csharp
                if (!Directory.Exists (Application.dataPath + "/i/saves"))
                        Directory.CreateDirectory (Application.dataPath + "/i/saves");
                FileStream fs = new FileStream (Application.dataPath + "/i/saves/save.zorya", FileMode.Create);
...
                if (File.Exists (Application.dataPath + "/i/saves/save.zorya")) {
                        FileStream fs = new FileStream (Application.dataPath + "/i/saves/save.zorya", FileMode.Open);

Обратите внимание на эту чать кода - /i/saves/save.zorya это путь к моему сохранению. Как его надо поменять чтоб на телефоне все прекрасно работало !?

Re: Сохранения для игр на телефон.

СообщениеДобавлено: 27 сен 2017, 14:49
Pollux
Используйте
Синтаксис:
Используется csharp
Application.persistentDataPath

Фактический путь: sdcard0\Android\data\com.your.app\files

Re: Сохранения для игр на телефон.

СообщениеДобавлено: 28 сен 2017, 09:59
Fox_game
Pollux писал(а):Используйте
Синтаксис:
Используется csharp
Application.persistentDataPath

Фактический путь: sdcard0\Android\data\com.your.app\files


именно с этими палочками (\)? или с этими (/)
И где использовать Application.persistentDataPath?

я заменил на это:
Синтаксис:
Используется csharp
if (File.Exists (Application.dataPath + "sdcard0/Android/data/saves/save.zorya")) {
                        FileStream fs = new FileStream (Application.dataPath + "sdcard0/Android/data/saves/save.zorya", FileMode.Open);
...
                if (!Directory.Exists (Application.dataPath + "sdcard0/Android/data/saves"))
                        Directory.CreateDirectory (Application.dataPath + "sdcard0/Android/data/saves");
                FileStream fs = new FileStream (Application.dataPath + "sdcard0/Android/data/saves/save.zorya", FileMode.Create);

и все равно не выходит

Re: Сохранения для игр на телефон.

СообщениеДобавлено: 28 сен 2017, 10:20
alt3d
Вместо Application.dataPath используй Application.persistentDataPath
Юнити генерирует эту папку на телефоне по имени твоего приложения и изменяет права доступа так что ты можешь туда писать что хочешь.

И не надо городить огород с "sdcard0/Android/data/saves/save.zorya"
сразу пиши Application.persistentDataPath + "save.zorya"

https://docs.unity3d.com/ScriptReferenc ... aPath.html

Re: Сохранения для игр на телефон.

СообщениеДобавлено: 28 сен 2017, 18:56
Fox_game
alt3d писал(а):Вместо Application.dataPath используй Application.persistentDataPath
Юнити генерирует эту папку на телефоне по имени твоего приложения и изменяет права доступа так что ты можешь туда писать что хочешь.

И не надо городить огород с "sdcard0/Android/data/saves/save.zorya"
сразу пиши "Application.persistentDataPath/save.zorya"

https://docs.unity3d.com/ScriptReferenc ... aPath.html

Наверное я что-то делаю не так :-\ я заменил часть кода на:
Синтаксис:
Используется csharp
                FileStream fs = new FileStream (Application.persistentDataPath + "/save.zorya", FileMode.Create);
...
                if (File.Exists (Application.persistentDataPath + "save.zorya")) {
                        FileStream fs = new FileStream (Application.persistentDataPath + "save.zorya", FileMode.Open);
// а это убрал вообще
//              if (!Directory.Exists (Application.persistentDataPath + "/saves"))
//                      Directory.CreateDirectory (Application.persistentDataPath + "/saves");

и все равно ни на компе ни на телефоне ничего не происходит

Re: Сохранения для игр на телефон.

СообщениеДобавлено: 28 сен 2017, 19:40
Tolking
FileStream (Application.persistentDataPath + "/save.zorya"
Exists (Application.persistentDataPath + "save.zorya"