Box Collider Clipping Issue

I’m currently creating an isometric game and am encountering some box collider issues.

Basically, I have a player character, a pathway and some box colliders surrounding the area the player walks on. The player is a 1-scale cube with a rigidbody (more on that later…) + box collider, and the pathway is made up of 0.5 scale cubes.

The problems I’m experiencing manifest themselves in a few ways:

  1. When the player object is near a corner, moving into the corner causes it to ‘squeeze’ into the box collider on the corner a little bit, and retract when you stop moving. Illustrated in the following picture:

  1. If the player object is moving (even at a fairly slow speed) and encounters a collider, it can clip into it extremely briefly - maybe for 1 frame. This causes problems in that the player can get stuck if you move in another direction while in this state. Illustrated in the following picture:

  1. The player can move very slightly in the ‘wrong’ direction on the path. We’re talking maybe one pixel here. By ‘wrong’ direction, let me give an example - you’re moving on a North-East path, but as a result of this problem you can move a pixel on the North-West/South-East axis. This sounds picky, but there doesn’t seem to be any reason for it to be happening, and I would prefer that the player can not move in the ‘wrong’ direction at all.

Now, about the player character using a rigidbody instead of a character controller - I have attempted using a character controller, but even after tweaking it seems to work even worse than a rigidbody (it gets stuck on the surrounding colliders a lot worse, corner collision is pretty terrible, etc.).

I’ve looked around at various ways in which to try and rectify this, including:

  • Adding physics materials with 0 bounciness and 0 friction to all objects.
  • Adding the Don’t Go Through Things script to my player.
  • Changing Bounce Threshold to 0 in PhysicsManager.
  • Upping solver iteration counts in PhysicsManager.
  • Changing Min Penetration for Penalty to 0.001 in PhysicsManager.
  • Changing Interpolate to Interpolate (instead of None).
  • Changing Collision Detection to Continuous Dynamic.

At this stage, I’m wondering if colliders are even the way to go to achieve the kind of precision I’m looking for. Does anyone have any ideas on how to resolve the clipping issues mentioned? Should I be doing away with colliders and considering implementing this programatically with a tile-based system instead?

Thanks in advance!

This is still causing headaches. Any ideas? Also happens in box-to-mesh scenarios just to confirm that.