- Home /
Score not increasing as intended?
I have a pick-up object that spawns randomly in the scene after every 10 seconds. If the player collects the pick-up, the score should increase by 1 point. However, when my player picks up the object, the score does not increase my 1. It increases by a random number. For example, when I collected the pick-up after first spawn, the score went from 0 to 3. When I collected the pick-up after the second spawn, the score went up from 3 to 7. I'm not sure what's causing this problem.
Here's my code:
void OnTriggerEnter(Collider other)
{
if(other.gameObject.CompareTag("PickUp"))
{
Destroy (other.gameObject);
scoreCount = scoreCount + 1;
scoreText.text = "Score: " + scoreCount;
}
}
This code is part of the player's script. Another thing I noticed is that when I use other.gameObject.SetActive(false) instead of Destroy(other.gameObject), the score increases by 1 (as intended). Any idea what's causing this issue?
What does your pickup look like? Does it contain multiple colliders?
AFAI$$anonymous$$ Destroy() does not remove the object immediately, so you can get multiple events in the same frame, one for each of the colliders that you entered.
I guess it has something to do with Destroy only destroying the object at frame end. There's DestroyImmediate which destroys instantly, you should see if it works.
You can but be careful with it. Its aggressive and has the ability to permanently destroy assets.
@ScaniX Nope, it just has a sphere collider. And as for the appearance, it's a gear-shaped object that I imported from Blender.....not sure if that really matters through
As HafizAli mentioned: The same goes for multiple colliders on the player (including children).
You should probably mark the pickup as "consumed" (you could even just change the layer or something) to only process it once.
Answer by HafizAli · Aug 19, 2016 at 01:04 PM
Make sure the player has not more than 1 colliders attached.
That solved the problem. Some of the children of the player had colliders attached to them. Thanks.
Your answer
Follow this Question
Related Questions
Pick up item 1 Answer
Can't increase my score after OnTriggerEnter occurs. 1 Answer
How to make a note pickup system in Unity2D? 1 Answer
How do I do I time-base score script 0 Answers
Simple score system breaking crates 1 Answer