- Home /
Referencing static var
Hi community - my other post was not approved so let me try this again.
I have a GO "scoreText" with a static var "score" which is the players highscore. When the player dies, the next scene "3" is loaded where i try to get a reference to the "score" var so I can post it as a highscore. I have already made sure that the GO "scoreText" is not destroyed on scene load.
On the scene "3" where I want to reference it, I have tried many different things, but nothing has worked.
I have been successful in getting a reference to the gameobject "scoreText" where the script (ScoreManager) containing the var "score" is attached, but when i try to use GetComponent or anything else it gives me the error "ScoreManager does not exist in the current context" which i think is extremely weird since I have referenced the gameobject successfully? :S
Here's my code trying to create the references:
private GameObject scoreText;
private int scoreInt;
void Start ()
{
scoreText = GameObject.Find ("ScoreText"); //successful
scoreInt = scoreText.GetComponent(ScoreManager).score; //ScoreManager does not exist in current context
}
and the ScoreManager script with the "score" var I want to reference
public static int score; // The player's score.
Text text; // Reference to the Text component.
void Awake ()
{
//Don't destroy this object when we load next scene
//so we can use the score var on the Highscore scene
DontDestroyOnLoad(transform.gameObject);
// Set up the reference.
text = GetComponent <Text> ();
// Reset the score.
score = 0;
}
void Update ()
{
// Set the displayed text to be the word "Score" followed by the score value.
text.text = "Score: " + score;
}
Any ideas? Any help appriciated!
Answer by gjf · Dec 11, 2014 at 11:08 AM
try changing:
scoreInt = scoreText.GetComponent(ScoreManager).score;
to:
scoreInt = scoreText.GetComponent<ScoreManager>().score;
although, for safety, you should be doing this:
scoreComponent = scoreText.GetComponent<ScoreManager>();
if (scoreCompoment != null)
{
scoreInt = scoreComponent.score;
}
Your answer
Follow this Question
Related Questions
Script Errors with Unity 3.0 0 Answers
How to attach a script to a static Tree Prefab? 1 Answer
Unable to modify a variable in another script 2 Answers
Unity 2d static variables versus GameObject.Find("") 2 Answers
Making a script static - good practise? 2 Answers