Когда вы устанавливаете рекорд прямо сейчас, вы получаете текущий рекорд и сохраняете его в переменной highscore
. Затем вы продолжаете перезаписывать высокий балл с помощью переменной highscore
, фактически устанавливая высокий балл на себя. Что вы на самом деле хотите сделать, так это проверить, превышает ли текущий балл высокий балл, и если это так, вы установите высокий балл на текущий балл.
highscore = PlayerPrefs.GetInt("highscore");
if(score > highscore)
{
PlayerPrefs.SetInt("highscore", score);
PlayerPrefs.Save();
}
Еще одна причина, по которой ваш код не работа заключается в том, что вы пишете "highscore"
с маленьким h в скрипте 1, но большим h в скрипте 2.
Кроме того, вызов PlayerPrefs.GetInt
при каждом обновлении очень неэффективен. Вы должны превратить их в функции, которые вы вызываете только тогда, когда вам нужно получить или установить высокий балл.