Hi, I'm working on a breakout-type game with balls and cubes (it's in 3D). So it involves: - SphereCollider - BoxCollider (bricks are all perfect cubes) - A custom collision physics script (I'll explain just after) I found that using PhysicsMaterials results it very poor bounces (the angle would change without any reason). So I decided to make my own script which is very simple: When the ball collides with something, it gets the normal of the collision. Using that normal vector, it simply inverts the component of the ball-direction-vector parallel to the normal vector. (ball-direction-vector, by that I mean the vector that dictates the direction of the ball at any given time, sorry for bad english). Also, the ball never looses/gain speed on any collisions, just through powerups. My problem now is: When the sphere hits the perfect edge of a cube, the ball's direction gets a very unlikely new direction. See picture here : Green X = point of collision On the left side, the ball hits on the face, so there is no problem. However, on the edge, I would expect the ball to move in the purple area. Instead, it goes as shown by the red arrow. VIDEO showing the problem : Timescale is set to 0.2f so it's easier to see. The view is from the top. Also, while recording this I noticed that it goes also weird on the second edge, since this cube I hit needs multiple hits before being destroyed.So it's even weirder than on 1-hit-destroyed cubes. Now, I don't really know what to do, for edges-bounces, it's perfect since normals are going outward from the surface. But on corners, maybe they are pointing outward from the center of the cube, in that case that makes sense. Any idea or things to test out ? Am I missing something ? Thanks for reading, I hope it's clear enough, I can add the script part or more infos if you need, Riyujin.