- Home /
Why will Playerprefs not save my score on Android / iOS?
So, here's my code...
public void OnEnter()
{
anim.SetTrigger("fadOpagueInteractive");
animImageGameOver.SetTrigger("Entrance");
animScoreParent.SetTrigger("Entrance");
animToolbox.SetTrigger("ToolboxEntrance");
playLarry.LarryFallPrep();
if (PlayerPrefs.HasKey(highScoreSlot)) scoreBest = PlayerPrefs.GetFloat(highScoreSlot);
scoreBestDisplay.text = scoreBest.ToString();
StartCoroutine(CountUpScore());
adMob.ShowBanner();
GC.Inst.FadeToBlackTransp();
}
public void ScoreAtGameOver (int scoreFromGame)
{
score = scoreFromGame;
scoreCountUp = 0;
scoreDisplay.text = scoreCountUp.ToString();-
if (score > scoreBest)
{
scoreBest = score;
PlayerPrefs.SetFloat(highScoreSlot, score);
imageNewBG.SetActive(true);
partSysBestScore.Play();
aud.PlayOneShot(celebrate);
}
}
This last is triggered as the player comes out of the play state and enters the game over state (where the score is displayed, the player can choose to restart etc.)
Unfortunately, the device (A Samsung Tab-A) seems to record the score somewhat unreliably - it can keep the score for a week or so, then it suddenly seems to wipe the score between a couple of games in a row.
Is Playerprefs the wrong resource for this? Should I just go ahead and do some serialization?
Thanks in advance,
--Rev
Answer by Reverend-Speed · Dec 14, 2017 at 03:12 PM
The solution I've gone with so far is to use PlayerPrefs.Save() after recording the score, but as a fallback I have this in my back pocket: https://nomadtuts.wordpress.com/c-scripts-unity-3d/?frame-nonce=44ee71d05f
Answer by bhavinbhai2707 · Dec 12, 2017 at 03:45 PM
did you check on other devices??
Not really - the target platforms are modern Android and iOS systems. When testing the game in-editor, the score seems to save between games, but resets on restarting the game in the editor.
--Rev