when i reload the scene the score number remains the same and doesnt revert back to zero
In my game I am supposed to collect icons or coins and I also have a high score which is saved. when I collect a certain amount of coins (X) and then lose the score text still remains (X) and doesn't become zero here is my code
using UnityEngine; using UnityEngine.UI; using System.Collections;
public class iconcollect : MonoBehaviour {
public static int score = 0; // The player's score.
public Text scoretext;
public Text hiighscoretext; // Reference to the Text component.
public static iconcollect iconcolect;
public Text scoretext1;
public Text hiighscoretext1;
public int highscore;
void Start(){
}
void Awake ()
{
// Set up the reference.
scoretext = GameObject.FindGameObjectWithTag("text").GetComponent<Text>();
iconcolect = this;
highscore = PlayerPrefs.GetInt ("highscore",0);
hiighscoretext = GameObject.FindGameObjectWithTag("highscore").GetComponent<Text>();
iconcolect = this;
highscore = PlayerPrefs.GetInt ("highscore",0);
}
void Update ()
{
scoretext.text = "score:" + score ;
hiighscoretext.text = "Highscore:" + highscore;
scoretext1.text = "score:" + score ;
hiighscoretext1.text = "Highscore:" + highscore;
}
void SetCountText ()
{
}
void OnTriggerEnter(Collider col)
{
if (col.gameObject.tag == "icon")
{
score = score + 1;
Destroy(gameObject);
}
}
public void checkhighscore(){
if (score > highscore) {
PlayerPrefs.SetInt("highscore",score);
}
}
}
Answer by Kimi073 · Nov 20, 2015 at 10:24 AM
I see that you make no attempt of setting the score back to zero (0) when you die
All everything is just you need to assign the score back to zero (0) when you lose
You can make a function similar to this:
void GameOver(){
// your condition for game over here or else where in the script that call this function
//when the game is over
score = 0;
}
EDIT: I didn't read you question title correctly (so sorry >.<). So the answer for your question is very simple: you just need to set the score = 0 in the Awake function so that whenever you reload the scene it will always turn to zero
A side note, I think all the Awake code should be moved to Start as there is always a chance that required data hasnt loaded yet. Finding objects especially, should be performed in Start.
Your answer
Follow this Question
Related Questions
Help making a high score with player prefs/displaying it 1 Answer
I have this code and I want every time you destroy the hexagon to add + 1 to the text 0 Answers
Can't update score text - small error breaks the game (Space Shooter Tutorial) 1 Answer
Unity getting the score 1 Answer
when i reload the scene the score number remains the same and doesnt revert back to zero 0 Answers