When an object move fast and hit another object, it generate a hit event on component with a hit information. An impact point is in the hit information, which is the collision point in world space. If I want to get this point in object local space, what I could do is only inverse transform this point using the transform of the object.
However, the local position looks delay and is not exactly on the surface of the object. I have used Chaos Visual Debugger to see what was happened in the physics world, the contact point seems not the same even in world space, let alone the local space.
In the case below, I disable the interpolation using p.UseAsyncInterpolation command. If I enable it, the result is wrong, too. So here I just post one of them.
Here are the screenshots in game world and physics world.
I printed the collision point in game world, which is (563.015, 1404.812, 8.387)
The position in physics world is (563.014616, 1391.535137, 8.625001) + (0.0, 8.625002, 0.0) = (563.014616, 1400.160139, 8.625001)
The y and z components are not the same.
[Image Removed]