Hello,
I am Vasile Pește. I was writing a post on how to get the impact force of a collision in Unity and while reading the documentation I found something strange.
To understand you should also read my post: https://www.malgol.com/how-to-get-the-impact-force-of-a-collision-in-unity/
-
To detect the collision impact force of a 3D collision we can use the “impulse” property of the Collision class and divide it by Time.fixedDeltaTime
Unity - Scripting API: Collision.impulse
as your documentation says: “To work out the total force applied you can divide the total impulse by the last frame’s fixedDeltaTime.” -
To detect the collision impact force of a 2D collision we can’t simply call a “impulse” property since it is not defined in the Collision2D class. So we have to sum the impulse of all the contact points of the collision.
So as you can see in my article we have to get all the contact points of the Collision2D instance and sum this:
The problem is right there:
In your documentation about the ContactPoint2D.normalImpulse you don’t call it impulse, you call it “impulse force” which I think is wrong and ambigous in Physics (Momentum Change and Impulse). Force and Impulse are two different things.
It is not clear if you are calling it “impulse force” because you have already divided it by Time.fixedDeltaTime or not. It is not clear for me if I have to divide it by Time.fixedDeltaTime.
Starting from the impulse I must divide it by delta time to obtain the impact force. Why are you calling it “impulse force”, you have already divided it by delta time or I have to do this on my own?
Could you please verify if you are already dividing the normalImpulse by Time.fixedDeltaTime and then correct the documentation?