- Home /
Increase score upon an enemy's death
So I have been consistently trying (and failing) to create a game with a score counter that increases by 1 upon each enemy being destroyed. In each case, however, the score value (which is an int) remains at 0. The enemies are spawned by an object (EnemySpawner) which is constantly in the scene. I am trying create the code regarding the score in the EnemySpawner. Here is the code I am trying to use: void Update () { if (enemyPrefab == null) { score += 1; } } The score simply doesn't increase. Is it something to do with the fact that the enemy object is a prefab and doesn't appear in the scene until the spawner Instantiates it?
Have you made any research before co$$anonymous$$g here ?
If I write on Google the EXACT same thing you set as title, I find this :
https://unity3d.com/learn/tutorials/projects/survival-shooter/scoring-points
Answer by alok1974 · Jul 03, 2015 at 08:20 AM
score handling should be preferably done with a separate gamemanager class (usually a singleton). Whenever you destroy the enemy, broadcast an event. The game manager should subscribe for this event and when triggered should increase the score by one.
Answer by Michael_-01-_ · Jul 03, 2015 at 09:19 PM
Make a script on the enemy and when you call destroy, send a message to the player to add to the score, try something like this.
C# float Health; GameObject Player;
void Start()
{
Player = GameObject.FindObjectWithTag("Player");
Health = 100;
}
void Update()
{
if( Health <= 0)
{
DES();
}
}
void DES()
{
Player.SendMessage("AddScore", SendMessageOptions.DontRequireReceiver);
Destroy( gameObject);
}
And then in your player's script just add a function
int Score;
void AddScore()
{
Score += 1;
}
This is a very bad example and should not be used as a reference.
Yeah, I was trying this and when I implemented it properly the score simply didn't go up. It remained at 0. I really don't get it.
Your answer
Follow this Question
Related Questions
Destroying Screen Wrap Ghosts That Pass Off The Left Of Screen 0 Answers
Have a problems with a values 1 Answer
Destroy object on touch of object with specific class 3 Answers
Multiple Cars not working 1 Answer
Simple on Collision Help (C#) 2 Answers