I’m trying to write my own character controller and I want to understand how Unity’s works. I think what it does is this: at each fixed update it takes the smaller collider reduced by the skin width, casts it forward to see where it hits something, then moves the character forward so that the full size collider touches that point. So my first question is is that right, am I missing an important step?
My next question is how does
Physics.SphereCast work? What subroutines and geometric algorithms are involved? Every
Collider has the methods
ClosestPointOnBounds, so does
Physics.SphereCast just use some combination of those functions for each
Collider, or is there more math involved on top of that? And are sphere casting and capsule casting the main geometric algorithms used by the character controller, or are there others I should be aware of?