How to make 2D effectors instant?

So I’ve been wanting to add effectors to my game to get a bit of extra physics within the game to make things more interesting and it all went in fine but one thing I’ve noticed there is actually a delay between the player’s point of contact to the effector and the physics kicking in. This means that when the player enters the collider for the effector they can fight the effects which is something I don’t want.

For example what I’ve got as a little idea is that there’s a blizzard that blows on my earlier levels and knocks the player back, I want the physics to kick in instantly so the player has to work out the timing, very much like in Legend of Zelda if you guys remember that with snow mountain.

Anyone know how to fix this?

There’s no delay. A physics contact only exists when physics has run and physics is run during the fixed update and they are applied instantly. It is not run per render frame. If you’re moving stuff during frame rendering then the physics won’t know about this until it runs.

You can manually update the physics simulation per frame using the new “Physics2D.Simulate()” feature in 2017.1 beta however you need to know what you’re doing there and the consequences of passing in a variable time delta per-frame.

Oh I see! Would FixedUpdate solve this issue then? I’m only using regular, must be that because I’m moving so much and it’s a couple of frames out that’s what causes the issue I’m seeing.

Edit: Okay I can more accurately describe my problem now, what happens is when I’m pressed the E key and going through my effector, it still keeps pushing on ahead even though there’s a ton of force being applied, how would I fix this? Would I need to check for a collider trigger with my effector trap and have movement disabled briefly to push the player out?