- Home /
Keeping Highest score - Star Rating System
Hello,
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)
{
starOne.SetActive(true);
starTwo.SetActive(false);
starThree.SetActive(false);
}
if (highScore == 2)
{
starOne.SetActive(false);
starTwo.SetActive(true);
starThree.SetActive(false);
}
if (highScore == 3)
{
starOne.SetActive(false);
starTwo.SetActive(false);
starThree.SetActive(true);
}
//debug test
Debug.Log(" Level 1 Star count:" + level1StarCount);
Debug.Log(" Level 2 Star count:" + level2StarCount);
Debug.Log(" Level 3 Star count:" + level3StarCount);
}
}
Answer by Afassolas · Oct 14, 2014 at 02:28 PM
//saving highscore highScore = PlayerPrefs.GetInt("Level 1 HighScore");
this should be PlayerPrefs.SetInt("Level 1 HighScore",highScore);
Answer by GluedBrain · Nov 01, 2014 at 04:12 AM
Okay, heres a tutorial on how to get this star rating system done.. Check it out
Answer by Chr15_v101 · Feb 04, 2017 at 09:52 AM
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.
Your answer
Follow this Question
Related Questions
Highscore won't save 3 Answers
PlayerPrefs save after quit? 2 Answers
How to save a high score 2 Answers
Saving highscore with PlayerPrefs 1 Answer