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

did you check on other devices??

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: C# Scripts/ Unity 3D – Nomad Unity 3D Tutorials