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);
}
}