I make a puzzle game, that have many level on it…at that level there is highscore, i used PlayerPrefs…the question is…how to save highscore in every level? because the high score appear same in every level…
here is the code :
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
using System;
public class Panel : MonoBehaviour {
public GameObject Canvas;
public GameObject MyScore;
public Text Score;
public Text highScoreText;
public Scene scene;
void Awake()
{
Scene scene = SceneManager.GetActiveScene();
}
void Start()
{
MyScore = Canvas.transform.Find("timer").gameObject;
Score.text = MyScore.GetComponent<Text>().text;
highScoreText.text = PlayerPrefs.GetInt("HighScore", 00).ToString();
// highScoreText.text = PlayerPrefs.GetInt("HighScore" + scene.name, 00).ToString();
// highScoreText.text = PlayerPrefs.GetInt("HighScore2" + SceneManager.GetSceneByName("level 1")).ToString();
// highScoreText.text = PlayerPrefs.GetInt("HighScore3" + SceneManager.GetSceneByName("level 2")).ToString();
// highScoreText.text = PlayerPrefs.GetInt("HighScore4" + SceneManager.GetSceneByName("level 3")).ToString();
// highScoreText.text = PlayerPrefs.GetInt("HighScore5" + SceneManager.GetSceneByName("level 4")).ToString();
// highScoreText.text = PlayerPrefs.GetInt("HighScore6" + SceneManager.GetSceneByName("level 5")).ToString();
// MyText = transform.Find("timer").GetComponent<UnityEngine.UI.Text>();
}
void Update()
{
int myNewScore = int.Parse(Score.text);
Score.text = myNewScore.ToString();
if (myNewScore > PlayerPrefs.GetInt("HighScore"))
{
PlayerPrefs.SetInt("HighScore", myNewScore);
highScoreText.text = myNewScore.ToString();
}
/*if (myNewScore > PlayerPrefs.GetInt("HighScore2"))
{
PlayerPrefs.SetInt("HighScore2", myNewScore);
highScoreText.text = myNewScore.ToString();
}
if (myNewScore > PlayerPrefs.GetInt("HighScore3"))
{
PlayerPrefs.SetInt("HighScore3", myNewScore);
highScoreText.text = myNewScore.ToString();
}*/
Debug.Log(MyScore);
}
}