How to make a bug (ant) with a CharacterController align to any surface?

Im working on a RTS style game were the player controlls ants to dig tunnels and whatever. Kinda like an old game called antSim. My problem is that I cant get my ants to travel around the level in a good way. I want them to stick to any surface and go the shortest way over the floor, wall or ceiling.

I got the path finding figured out but cant get the character controller to constrain to the surface and face the right direction as it moves.

Any ideas?

alt text

The CharacterController is bad for walking on arbitrary surfaces like walls and ceilings, because it can't align to anything other than the global Y direction. I recommend to use a rigidbody instead.

Also see this question: Orienting character to walls and ceiling