i thought that i had a fairly straightforward strategy for implementing the grounded check, but things almost immediately starting acting up. the goal is to check a region under the player's feet for collisions, and specifically, i have a use for the normal of the surface i'm standing on.
unfortunately, OverlapSphere and SphereRaycast are two different things. the former doesn't return normal, and the latter i couldn't get to consistently register all of the surfaces i'm standing on. i know that Rigidbody objects can store a list of their contact points, so there must be some way the engine has to retrieve this information for me. but it isn't going to make it easy, apparently.