Consider that I have 3 surfaces, upon collision; the first surface slightly slows a rigidbody but allows it to pass through, the second surface slows a rigidbody even more but also allows it to pass through, while the last surface would completely prevent a rigidbody from passing through and would rebound the rigidbody.
The slowing down of the rigidbody is straight forward, what I am not quite sure about is what is the best way to have these collisions triggered. I would like to use OnCollision so that I can get detailed information about the rigidbody and surface hit; such as the angle of impact, velocity at impact, collision magnitude etc. But for OnCollision I would need to use colliders and I am wondering how to make a rigidbody pass through a collider and still give collision hit information? I suppose that the other option is a raycast but in my past experience using raycasts with very fast moving rigidbodies is not very reliable. Lastly, triggers would make the passing through straight forward but they do not provide detailed hit information as far as I know.
Could someone please advise what is an effective way to achieve this.