Hit events on world static or world dynamic actors that have not had physics simulation enabled on them in the past seem to be somewhat unreliable. Collisions against them will fire events as long as there is no other actor also colliding with the pawn in the same tick otherwise only one hit event will be fired.
Once physics simulation is enabled(and optionally disabled and reset to default static BlockAll) collisions will reliably fire events on and for all colliding actors.
I’ve created a short video to highlight the inconsistency. You should see the template physics ball pawn colliding with some static mesh actors. Hit events create arrows from the hit location in the direction of the hit normal and scaled by the hit impulse. Rolling causes continuous small arrows, strong collisions large arrows.
In the first part there are a number of obvious collisions that do not fire hit events. After enabling simulation on the static mesh actors and then disabling it again, collisions are very reliable.
Steps:
- Load the rolling ball template.
- Set up a hit event to fire on the the ball pawn.
- Set up some hit events for some of the static cube obstacles in the level blueprint.
- A - D
A. Roll the pawn into walls.
- Hit events are missed for most or all wall hits.
B. Jump into the walls.
- Hits are recorded.
C. Drop / Jump from a high location to the ground.
- Some hit events are missed until bouncing stops.
D. Roll along the length of a wall colliding with both the floor and the wall.
- Hit events are called for either the wall or the floor. Not both.
Part 2
- Enable physics simulation on one or more walls/floors/obstacles.
- Disable physics simulation on the same.
- Set the collision preference back to BlockAll preset.
- Perform A - D again. Hit events are always fired when expected on the previously simulating actors.