- Home /
Detect Multiple Collisions
I'm making a brick breaker game, and to make the ball bounce off the bricks, I'm just reversing the speed component of the ball in either X or Z (for bouncing off the sides or top/bottom). The only problem is, the ball is large enough to contact two bricks at the same time, and when it does that, the collision function is called twice, reversing the speed twice, so the ball goes straight instead of bouncing.
Is there a way to detect whether the ball hit multiple bricks and only run the procedure once?
Answer by umangindianic · Jun 14, 2013 at 09:02 AM
To detect the colliders, you can use Physics.OverlapSphere.
private Collider[] colliders;
colliders = Physics.OverlapSphere(player.transform.position, 0.7f);
foreach(Collider colliderObject in colliders){
//Game Logic
}
with the use of colliders, you can get the colliders nearer to your player object and you can handle to each object in foreach loop. if you want to increase the OverlapSphere radius with change of value of 0.7 to other. With the each object you can handle each object independently like speed and other things.
That's not quite what I'm looking for. I don't want to do something for each collider, I want to only change the direction of the ball based on the first object it collides with. Is there a way to write a different function for the second collision that happens within a frame or something?
You can control the same condition by BREA$$anonymous$$ and you can set break statement as you want your value.
Your answer
Follow this Question
Related Questions
How to detect range of multiple gameobjects? 1 Answer
Detect when CharacterController is not colliding? (SOLVED) 1 Answer
Multiple Collisions Within Different Objects 0 Answers
check collisions of only certain bones in a figure 1 Answer
Why does OnCollisionStay returns multiple contact points in such a strange way? 0 Answers