2

I ran into a bit of a problem with PlayerPrefs in unity3d 5.4. (I am using 5.4 because there is a game-breaking bug in 5.5.)

Here is the code:

void OnApplicationQuit() {
    PlayerPrefs.SetInt("numerator", numerator);
}

This works fine in the editor, but on mobile it's a different story. It doesn't do anything.

David Tansey
  • 5,813
  • 4
  • 35
  • 51

1 Answers1

1

Call PlayerPrefs.Save after PlayerPrefs.SetInt. That will likely solve your problem.

void OnApplicationQuit()
{
    PlayerPrefs.SetInt("numerator", numerator);
    PlayerPrefs.Save();
}

If that does not solve your problem, do the save operation in the OnApplicationPause or OnDisable function.

void OnApplicationPause(bool pauseStatus)
{
    if (pauseStatus)
    {
        PlayerPrefs.SetInt("numerator", numerator);
        PlayerPrefs.Save();
    }
}

If both of these fail, Please look here for how to use Json to save and load game data.

Community
  • 1
  • 1
Programmer
  • 121,791
  • 22
  • 236
  • 328
  • 1
    Thanks! The `OnApplicationPause` along with the `PlayerPrefs.Save` did the trick! –  Feb 11 '17 at 22:31