I have noticed some oddities with mesh collisions.
When I spawn the same static mesh at the same location (0,0,0) and use the same AddImpulse(FVector(500.0f, 0.0f, 0.0f)), what happens is that the mesh will collide with other solid meshes in different ways. For example, if I create a box geometry and I rotate it by 45 deg, then each static mesh upon collision will go in a different direction.
If the starting location, speed, and the mesh they collide with are all identical (and the collision mesh is static with no movement), then why do different instances bounce off in different directions?
I am trying to shoot multiple small particles in a row and have them bounce in identical ways, but it seems they always fly in different directions. I understand that there can be inaccuracies with calculations, but surely those inaccuracies must repeat identically given the situation remains the same?
Is there some kind of randomness behavior in UE’s collision?
Could gravity play into this?
Maybe after you spawn the mesh, it falls a bit before AddImpiulse takes effect, so its not from exactly (0/0/0)…
The variation could then stem from the time it takes to apply the force after spawning the actor the actor…
I have disabled gravity, collisions between them (to be sure), and modified the physics material to have no friction and restitution. I have also given them a mass of 0. They just fly forward and bounce, yet every time in different directions (slightly but visibly).