[SerializeField] Text HighScoreText;
[SerializeField] Text scoreText;
public int score;
[SerializeField] int highScore = 0;
public bool canPickScore = true;
void Start()
{
//score = 0;
loadScores();
}
void Update()
{
HighScoreText.text = "Лучший счет: " + highScore.ToString();
if (score > highScore)
{
highScore = score;
saveScores();
}
}
public void saveScores()
{
PlayerPrefs.SetInt("highScore", highScore);
PlayerPrefs.Save();
}
public void loadScores()
{
highScore = PlayerPrefs.GetInt("highScore");
}
private void OnTriggerEnter2D(Collider2D col)
{
if (col.gameObject.tag == "ScoreTrigger" && canPickScore == true)
{
score++;
scoreText.text = score.ToString();
saveScores();
}
}
Это код счета и рекорда с сохранением PlayerPrefs...
Но нужно сделать так, чтобы на каждом уровне был свой счетчик рекорда.
Нужно сделать "Лучший счет/Рекорд" в игре с несколькими уровнями.
Я так сделал, но проблема в том, что рекорд сохраняется при переходе на следующий уровень, а нужно сделать так, чтобы он сбрасывался.
Иначе получится так, что игрок может "набить большой счет" на легком уровне, потом перейти на следующие и будет казаться будто бы игрок набрал высокий счет на сложном уровне, хотя на самом деле это не так.
Есть идеи как это правильно реализовать?
У меня есть одна... При переходе со сцены на сцену сбрасывать переменную, но понятия не имею как это сделать.