OnCollisionEnter2D is called after object was shifted

Hello. I’ve got a following problem with unity Physcis 2D system…

In my game user holds an object with which he deflects objects throwed at him. Sometimes I wan’t to give a specific direction (rigidbody.velocity) to deflected objects. I’m setting velocity in OnCollisionEnter2D method, and it works most of the times (in this method I also change object’s layer to prevent further collisions). But sometimes the velocity is set after the throwed object was shifted by the player’s object, what isn’t a desired behavior.

Is there any way to force Unity to execute OnCollisionEnter2D method before physics engine takes action?

I’m using Unity 5.1.0f3.

Best regards!

Sorry . I meant put the velocity you add in update