Это нормально, что иногда PlayerPrefe забивает на некоторые сохраненные ключи, причем рандомно на разных устройствах?
Пишу и читаю не в Awake, после установки ключей сохраняю на диск. Все происходит по событиям (не в Update)
Вот у меня 4 параметра, пишу так:
public static void SaveOnlySettings ()
{
PlayerPrefs.SetInt ("settings_cheater", CheaterMode? 1:0);
PlayerPrefs.SetInt ("settings_tilt", useTilt ? 1 : 0);
PlayerPrefs.SetInt ("settings_music", useMusic ? 1 : 0);
PlayerPrefs.SetInt ("settings_vibration", useVibration ? 1 : 0);
PlayerPrefs.Save ();
}
Читаю так:
public static void LoadParams ()
{
CheaterMode = PlayerPrefs.GetInt ("settings_cheater", 0) == 1;
MoneyCount = PlayerPrefs.GetInt ("game_money", 0);
useTilt = PlayerPrefs.GetInt ("settings_tilt", 1) == 1;
useMusic = PlayerPrefs.GetInt ("settings_music", 1) == 1;
useVibration = PlayerPrefs.GetInt ("settings_vibration", 1) == 1;
rocketConfig = new RocketConfig ();
rocketConfig.LoadConfig ();
Debug.Log ("[GLOBAL] LOAD SETTINGS");
}
Во втором случае читаю все параметры махом, которые существуют, а пишу только настройки, так как они чаще меняются.
Так вот useMusic и useVibration на компе иногда не читаются как бы, useTilt всегда нормально работает.
Еще у друга на HTC не читается useVibration в определенных случаях, а на моем он не может воспроизвести баг.
Что за фигня такая и как лечится, а то проще сериализовать в json наверное будет.