- Home /
How to make gameObject make only one collision
Hi I have question for which I haven't been able to find an answer thus far. I have two game objects next to each other and each one has a collider. Now when a third object collides with one of the game objects then the direction of that third object takes a different direction based on which gameObject/collider it touched. This works fine for most part when the gameObjects are hit cleanly but when it collides in the middle of both colliders then it takes a direction in the middle, this causes a problem for my game.
I wanted to know how to make sure that only one collider/collision is triggered (doesn't matter which one) when any other objects collides in the middle of both gameObjects.
Answer by Rickywild · Nov 29, 2016 at 07:03 PM
You could try setting a private bool in each class. So something like this,
private bool isHit;
void Start()
{
isHit = false; //Set flag to false
}
void OnTriggerEnter2D(Collider2D collision)
{
//Check for collisions
if(collision.tag == "Example")
{
if(!isHit)
{
//do your stuff here.
isHit = true;
}
}
}
Once the bool flag has been set it won't execute that code again. Or make this variable a public static bool in your gamemanager singleton and set it there, and check against it in your collisions.
Your answer
Follow this Question
Related Questions
Colliding two GameObjects 1 Answer
On Trigger Enter, Collide with object, specific collision 1 Answer
Keep doing something while colliding 1 Answer
Help with destroying objects on collision 2 Answers
Collision problem in C# 4 Answers