You shouldn't need to work the physics out yourself, Rigidbody is your best bet to achieve fairly realistic and optimized movement compared to an own solution.
If your character moves through a collider but stops somewhere in it, then it's because there's something configured wrong.
The likeliest thing that should help is to set the
Collision Detection from
"Discrete" to
"Continuous" in your rigidbody so that it updates the physics more often, which means that there is a slightly bigger performance impact (shouldn't be noticeable if you don't overdo it), but the collisions are more precise. Alternatively or additionally you can decrease the
Fixed Timestep as described in the attached screenshot.
You should also read up on Rigidody's in the manual (
https://docs.unity3d.com/Manual/class-Rigidbody2D.html) as it will make its options more clear and will definitely help you in the future to understand what does what.
Also try to use BoxColliders instead of EdgeColliders if possible because the bigger the collider, the less likely it is that object pass through.