コード例 #1
0
    /* Given a collider and a position relative to the colliders transform, return whether or not the
     * position lies within the collider.  Can also provide the allowed distance tolerance
     */
    public static bool isInsideCollider(this Collider collider, Vector3 localPosition, float tolerance = 0.0f)
    {
        SphereCollider sphereCollider = collider as SphereCollider;

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

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

        if (capsuleCollider != null)
        {
            return(capsuleCollider.isPointInside(localPosition, tolerance));
        }
        Debug.LogWarning("ColliderUtil does not work for Mesh Colliders!");
        return(false);
    }