If a spherecast hits a collider inside the initial radius of the spherecast, it says the hit point is at the world origin, which is far from ideal. For Bradley obstacle avoidance, if the hit point is zero, replace it with hit.collider.ClosestPointOnBounds( obstacleRay.origin );