- Home /
OnTriggerEnter2D Rapid Fire
Hi Jeremy here and to keep it short and sweet my code(code below) is inside an OnTriggerEnter2D function, but when this gameobject(other) hits a gameobject with the tag coin as long as they are touching it fires off the code inside the if statement. Which in this case spawns like 100 particle systems and adds over 100 to my scoreValue? I only want the the code inside the if statement to fire off once everytime it hits another gameobject?
if (other.tag == "Coin")
{
var coinBurstClone : GameObject = Instantiate(coinBurstParticles, other.transform.position, Quaternion.identity);
Destroy(coinBurstClone, 2);
// Add a point to the current score when coin is hit and also update high score if its lower then current score
// then disable renderer and it gets renabled when it repostions in Coin Spawner Script
Score_Control_Script.currentScore += scoreValue;
other.gameObject.renderer.enabled = false;
}
It should do as you expect... OnTriggerEnter is supposed to trigger only the first frame that the collider entered the other collider...
Have you check that coinBurstParticles doesnt also have the "Coin" tag?
You could add a bool to your gameObject(other) to check if it has already collided and reset that bool to false when you are repositioning it in your Coin Spawner script
Your answer
Follow this Question
Related Questions
Code only affects first clone? 2 Answers
Can someone help me fix my Javascript for Flickering Light? 6 Answers
Setting Scroll View Width GUILayout 1 Answer
How to instantiate 2D object at fixed location? 1 Answer
Show "Score:5" on my screen, how? 1 Answer