Heya,
I am making a 2D simple vertical shooter in unity… I am new to this and struggling I guess with a basic concept - displaying the game over text.
All I am trying to do is have my UI Text “Game Over” appear on collision with an enemy to the player.
I currently have this in place, there are no errors, however nothing happens when you play the game and get hit by an enemy. Not sure what I need to be adding, removing or changing?
Any help is much appreciated.
Thank you so much
void OnTriggerEnter(Collider other){
if(other.gameObject.tag=="Enemy"){
GameOver();
}
}
void GameOver(){
gameOverText.text = “Game over, your score is” + GameObject.FindGameObjectWithTag(“PlayerController”).GetComponent().Count;
}
Assuming that you are hiding the text at the beginning (either unchecking the little box in the editor or through code), you’ll also want to unhide it:
gameOverText.GetComponent<Text>().enabled = true;
Side Note: Your GetComponent doesn’t look like it’s set to find an actual component. If you are trying to reference a script attached to the PlayerController, try:
GameObject.FindGameObjectWithTag("PlayerController").GetComponent<scriptNameGoesHere>().scoreVariableNameHere;
@placusbrutus
Thank you for that code.
I have added it into now where my enemy collides with the player. This is resolving all of my errors (Thank God!) however now when I play the game errors will come up giving me a Null Reference Exception, saying that Object reference is not set to instance of an object… but with my code here it is?
void OnTriggerEnter2D (Collider2D other)
{
if (other.gameObject.tag ==( “Player”))
gameObject.SetActive (false);
gameOverText.GetComponent().enabled = true;
Sorry to pester! Just trying to get my head around all of this. Thank you so much for your help.