Unity3D PlayerPrefs问题

Unity3D PlayerPrefs issue

我有一个问题,当我将分数从 10 降低到比方说 9 时,它无论如何都会改变高分,即使它是一个较低的数字。这是代码:

var score : int;
var highscore : int;

function Start(){
    highscore = PlayerPrefs.GetInt("highscore");
    score = 9;
    if(score > highscore){
        highscore = score;
        PlayerPrefs.Save();
    }
}

function OnGUI(){
    GUI.Label(Rect(10,10,100,20), score.ToString() );
    GUI.Label(Rect(10,50,100,20), highscore.ToString() );
}

您正在使用 GetInt,但之后没有使用 SetInt,因此您的 PlayerPrefs.Save() 调用实际上并没有保存任何新内容。

尝试在 Save() 之前使用 SetInt:

if(score > highscore){
    highscore = score;
    PlayerPrefs.SetInt("highscore", highscore);
    PlayerPrefs.Save();
}