Esempio n. 1
0
    /* Given a collider and a position reltative to the colliders transform, return the point on the
     * surface of the collider closest to the position
     */
    public static Vector3 closestPointOnSurface(this Collider collider, Vector3 localPosition, float extrude = 0.0f)
    {
        SphereCollider sphereCollider = collider as SphereCollider;

        if (sphereCollider != null)
        {
            return(sphereCollider.closestPointOnSurface(localPosition, extrude));
        }
        BoxCollider boxCollider = collider as BoxCollider;

        if (boxCollider != null)
        {
            return(boxCollider.closestPointOnSurface(localPosition, extrude));
        }
        CapsuleCollider capsuleCollider = collider as CapsuleCollider;

        if (capsuleCollider != null)
        {
            return(capsuleCollider.closestPointOnSurface(localPosition, extrude));
        }
        Debug.LogWarning("ColliderUtil does not work for Mesh Colliders!");
        return(Vector3.zero);
    }