Highscoresystem

this highscore sets highscores but when you set another highscore the third one for example doesn’t get the second one:

function AddScore(){

if(PlayerPrefs.GetFloat("1_50_float") >= privatecounter){

		PlayerPrefs.SetString("1_50_string", timeCounter);

		PlayerPrefs.SetFloat("1_50_float", privatecounter);

		

		}if(PlayerPrefs.GetFloat("2_50_float") >= privatecounter && PlayerPrefs.GetFloat("1_50")<= privatecounter){

		PlayerPrefs.SetFloat("2_50_float", privatecounter);

		PlayerPrefs.SetString("2_50_string", timeCounter);

		}if(PlayerPrefs.GetFloat("3_50_float") >= privatecounter && PlayerPrefs.GetFloat("2_50")<= privatecounter){

		PlayerPrefs.SetFloat("3_50_float", privatecounter);

		PlayerPrefs.SetString("3_50_string", timeCounter);

		}

}

How about this- inside your if-statement, after setting the score, set ‘privatecounter’ and ‘timeCounter’ to the previously saved values before passing them down to the next step:

if(PlayerPrefs.GetFloat("1_50_float") >= privatecounter){
    var oldTime : string = PlayerPrefs.GetString("1_50_string");
    var oldPrivate : float = PlayerPrefs.GetString("1_50_float");
    PlayerPrefs.SetString("1_50_string", timeCounter);
    PlayerPrefs.SetFloat("1_50_float", privatecounter);
    timeCounter = oldTime;
    privatecounter = oldPrivate;
}

This way, every time a score beats the current position, it displaces it instead of deleting it entirely.