Keeping Highest score - Star Rating System


I’m trying to create a generic star rating system. What my code currently does is it finds out how many objects the player collected (maximum is 3) and then it displays stars depending on how many the player has gotten. The issue I’m currently having is that highscore is overwritten. If i were to get 3 stars and play again - if i only collect 1, i my highscore is overwritten by a lower score (1 star in this case) i understand why but I can’t seem to find a solution.

using UnityEngine;
using System.Collections;

public class LevelSelectStarManager : MonoBehaviour {

    public int level1StarCount;
    public int level2StarCount;
    public int level3StarCount;
    public int level4StarCount;
    public int level5StarCount;
    public int level6StarCount;
    public GameObject starOne;
    public GameObject starTwo;
    public GameObject starThree;
    public int highScore;

	// Use this for initialization
	void Start ()

        //Getting star save data
	    level1StarCount = PlayerPrefs.GetInt("Level 1 StarCount", 0);
	    level2StarCount = PlayerPrefs.GetInt("Level 2 StarCount", 0);
	    level3StarCount = PlayerPrefs.GetInt("Level 3 StarCount", 0);

        //saving highscore
        highScore = PlayerPrefs.GetInt("Level 1 HighScore");

        //display star
        if (highScore == 1)



        if (highScore == 2)


        if (highScore == 3)



        //debug test
        Debug.Log(" Level 1 Star count:" + level1StarCount);
        Debug.Log(" Level 2 Star count:" + level2StarCount);
        Debug.Log(" Level 3 Star count:" + level3StarCount);


//saving highscore
highScore = PlayerPrefs.GetInt(“Level 1 HighScore”);

this should be PlayerPrefs.SetInt(“Level 1 HighScore”,highScore);

Okay, heres a tutorial on how to get this star rating system done… Check it out

Star rating system

Try something like this.

If (currentScore > level1HighScore)

Set high score.

It will only set the new score if it is greater than ‘>’ the existing high score.