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

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

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

Сообщение Fox_game 26 сен 2017, 13:07

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

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

Сообщение Alex_Hell 27 сен 2017, 01:18

1й незащищенный - на мобилах пашет - крякабельный легко
https://docs.unity3d.com/ru/530/ScriptR ... Prefs.html

2й защищенный - варианты есть менее крякабельные
https://habrahabr.ru/sandbox/92973/
https://www.assetstore.unity3d.com/#!/content/32357
Alex_Hell
UNец
 
Сообщения: 11
Зарегистрирован: 15 окт 2014, 14:24

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

Сообщение Fox_game 27 сен 2017, 11:19

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 это путь к моему сохранению. Как его надо поменять чтоб на телефоне все прекрасно работало !?
Fox_game
UNIт
 
Сообщения: 117
Зарегистрирован: 08 июл 2017, 19:33

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

Сообщение Pollux 27 сен 2017, 14:49

Используйте
Синтаксис:
Используется csharp
Application.persistentDataPath

Фактический путь: sdcard0\Android\data\com.your.app\files
Аватара пользователя
Pollux
UNITрон
 
Сообщения: 276
Зарегистрирован: 01 сен 2016, 22:31

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

Сообщение Fox_game 28 сен 2017, 09:59

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);

и все равно не выходит
Fox_game
UNIт
 
Сообщения: 117
Зарегистрирован: 08 июл 2017, 19:33

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

Сообщение alt3d 28 сен 2017, 10:20

Вместо Application.dataPath используй Application.persistentDataPath
Юнити генерирует эту папку на телефоне по имени твоего приложения и изменяет права доступа так что ты можешь туда писать что хочешь.

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

https://docs.unity3d.com/ScriptReferenc ... aPath.html
Последний раз редактировалось alt3d 29 сен 2017, 09:16, всего редактировалось 1 раз.
alt3d
Старожил
 
Сообщения: 687
Зарегистрирован: 04 сен 2011, 21:19
  • Сайт
  • ICQ

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

Сообщение Fox_game 28 сен 2017, 18:56

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");

и все равно ни на компе ни на телефоне ничего не происходит
Fox_game
UNIт
 
Сообщения: 117
Зарегистрирован: 08 июл 2017, 19:33

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

Сообщение Tolking 28 сен 2017, 19:40

FileStream (Application.persistentDataPath + "/save.zorya"
Exists (Application.persistentDataPath + "save.zorya"
Ковчег построил любитель, профессионалы построили Титаник.
Аватара пользователя
Tolking
Адепт
 
Сообщения: 2714
Зарегистрирован: 08 июн 2009, 18:22
Откуда: Тула


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 19