layerMask = LayerMask.NameToLayer("platform");//platform
hitInfo2D = RayCast(Player.position, -Vector2.up, 1, layerMask, Color.red, true);
RaycastHit2D RayCast(Vector3 rayOriginPoint, Vector3 rayDirection,float rayDistance,LayerMask mask,Color color ,bool drawGizmos = false)
{
if (drawGizmos)
{
Debug.DrawRay(rayOriginPoint, rayDirection * rayDistance, color);
}
return Physics2D.Raycast(rayOriginPoint, rayDirection, rayDistance, 1<< mask);
}
unity 射线检测不到 layermask 需要 在 mask前面 加上1<<
因为 mask 的下标 和mask 的 实际地址存在一定的偏差