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

Вылеты из-за PlayerPrefs

СообщениеДобавлено: 13 мар 2022, 21:20
HelpMePlz
Я долго думал в чем проблема, и потратив немало времени я выяснил что проблема в PlayerPrefs. После того как я убираю каждую строчку связанную с PlayerPrefs, программа работает стабильно и не вылетает, есть вариант перейти на другую систему сохранения, но есть ли решение этой проблемы. Помогите мне пожалуйста.

Re: Вылеты из-за PlayerPrefs

СообщениеДобавлено: 13 мар 2022, 21:24
1max1
Похоже на неверное понимание результатов. Покажи код из-за которого краши.

Re: Вылеты из-за PlayerPrefs

СообщениеДобавлено: 13 мар 2022, 21:50
HelpMePlz
В коде ничего такого нету, просто считывает данные, если есть такой PlayerPrefs, то переменной присваивает это значение. Вот весь скрипт
public void Start()
{
Debug.Log("Save Manager: START");
if (!PlayerPrefs.HasKey("SelectedLanguage_"))
{
PlayerPrefs.SetString("SelectedLanguage_", "en");
LoadTranslate();
}
else
{
LoadTranslate();
}
if (PlayerPrefs.GetString("SelectedLanguage_") == "en")
{
buttonController.LanguageChoose.value = 0;
}
else if (PlayerPrefs.GetString("SelectedLanguage_") == "ru")
{
buttonController.LanguageChoose.value = 1;
}
for (int a = 0; a < collection.characters.Length; ++a)
{
if (PlayerPrefs.HasKey("CharacterPlusPrimogems" + a))
{
collection.characters[a].PlusPrimogems = PlayerPrefs.GetInt("CharacterPlusPrimogems" + a);
collection.characters[a].C = PlayerPrefs.GetInt("CharacterC_Count" + a);
collection.characters[a].ConstaText.text = $"C{collection.characters[a].C}";
collection.characters[a].Locked.SetActive(false);
if (collection.characters[a].C > 0)
collection.characters[a].Dublicate = true;
}
}
for (int a = 0; a < collection.weapons.Length; ++a)
{
if (PlayerPrefs.HasKey("WeaponPlusPrimogems" + a))
{
collection.weapons[a].PlusPrimogems = PlayerPrefs.GetInt("WeaponPlusPrimogems" + a);
collection.weapons[a].C = PlayerPrefs.GetInt("WeaponC_Count" + a);
collection.weapons[a].ConstaText.text = $"P{collection.weapons[a].C}";
collection.weapons[a].Locked.SetActive(false);
if (collection.weapons[a].C > 0)
collection.weapons[a].Dublicate = true;
}
}
if (PlayerPrefs.HasKey("MyPrimogems"))
myMoney.Primogems = PlayerPrefs.GetInt("MyPrimogems");
if (PlayerPrefs.HasKey("StandartGacha"))
myMoney.StandartGacha = PlayerPrefs.GetInt("StandartGacha");
if (PlayerPrefs.HasKey("EventGacha"))
myMoney.EventGacha = PlayerPrefs.GetInt("EventGacha");
if (PlayerPrefs.HasKey("RareGarant"))
wish.RareGarant = PlayerPrefs.GetInt("RareGarant");
if (PlayerPrefs.HasKey("LegendaryGarant"))
wish.LegendaryGarant = PlayerPrefs.GetInt("LegendaryGarant");
if (PlayerPrefs.HasKey("LegendaryWeapon"))
wish.LegendaryWeapon = PlayerPrefs.GetInt("LegendaryWeapon");
if (PlayerPrefs.HasKey("StandartLegendary"))
wish.StandartLegendary = PlayerPrefs.GetInt("StandartLegendary");
if (PlayerPrefs.HasKey("BannerNumber"))
banners.BannerNumber = PlayerPrefs.GetInt("BannerNumber");
BannersUpdate();
myMoney.UpdateInfo();
}

Re: Вылеты из-за PlayerPrefs

СообщениеДобавлено: 13 мар 2022, 22:00
HelpMePlz
Могу скинуть logcat, но не знаю поможет ли.

Re: Вылеты из-за PlayerPrefs

СообщениеДобавлено: 13 мар 2022, 22:16
HelpMePlz
Извиняюсь забыл уточнить:
1) Вылеты на некоторых устройствах не происходят, на других же вылетает после загрузки сцены с задержкой в 10-15 секунд, или до запуска программы как говорят по отзывам
2)На моем устройстве(Honor 9 lite) Вылетает после 10-15 секунд после запуска.
Так как у меня недостаточно опыта, я думал что это из-за нехватки памяти, можете сказать так оно или нет? С такой проблемой сталкиваюсь впервые и честно говоря я не знаю что делать...

Re: Вылеты из-за PlayerPrefs

СообщениеДобавлено: 14 мар 2022, 02:00
1max1
Логи очень хотелось бы увидеть, там должна быть указана причина краша. Код префса тесно связан с другим кодом, не думаю что будет правильно говорить что вылетает именно из-за него, еще хотя бы потому что вылетает не сразу.