/// <summary>
 /// Returns the closest point on a collider. If you know the type of the collider, use the other ClosestPointOn functions instead, as they are a TINY bit faster
 /// </summary>
 /// <returns>The point on surface.</returns>
 /// <param name="sphere">Sphere.</param>
 /// <param name="collider">Collider.</param>
 public static Vector3 ClosestPointOnSurface(this SphereCollider sphere, Collider collider)
 {
     if (collider is BoxCollider)
     {
         return(sphere.ClosestPointOnBox((BoxCollider)collider));
     }
     else if (collider is SphereCollider)
     {
         return(sphere.ClosestPointOnSphere((SphereCollider)collider));
     }
     else if (collider is CapsuleCollider)
     {
         return(sphere.ClosestPointOnCapsule((CapsuleCollider)collider));
     }
     else if (collider is TerrainCollider)
     {
         return(sphere.ClosestPointOnTerrain((TerrainCollider)collider));
     }
     else if (collider is MeshCollider)
     {
         return(sphere.ClosestPointOnMesh((MeshCollider)collider));
     }
     else
     {
         return(collider.transform.position);
     }
 }