Fast moving 2D objects workarounds and performance tradeoffs?

I’m using Unity 5.5 and my fast moving 2D prefab doesn’t collide properly with my scene geometry without hacks. I saw an article mentioning the same issue I’m having and the “DontGoThroughThings” script as a workaround. I found this previously and tried it and while it does seem to work, I’m concerned about the performance hit from this script (Raycasting).

Here is a 3 showing the issue in 3D (same thing happens in 2D).

I also just discovered another article mentioning doubling the “Position Iterations” in the Physics2D settings but once again, I’m not sure about the performance hit.

I have a Dynamic CircleCollider2D set to Continuous Collision Detection that needs to Collide with a static collider in my scene geometry. I have tried using EdgeCollider2D and BoxCollider2D on the walls, floors and platforms. It works fine if I don’t use too much force and keep a little distance from the launcher to the wall but once I increase force or get too close it stops colliding.

Assuming that this still hasn’t been resolved…these seem to be the only workarounds:

  1. Change Physics2d Position Iterations
    from 3(default) to 6 (not yet tested)
  2. Continue using this script attached to my prefab
    which uses Raycasting

I can’t help think that I’m probably just overlooking something simple. Ultimately I would really like to just use a simple edge collider for my walls/floors/platforms but others have said it won’t work and I can’t get it to work either. Any feedback is greatly appreciated!

Raycasting is fast. A single raycast to see if you went through geometry is a standard way to fix this. It is a good solution.