C# 如何使光线投射与物理管理器中的层发生碰撞

C# 如何使光线投射与物理管理器中的层发生碰撞,c#,unity3d,C#,Unity3d,我希望我的Physics.Raycast与我在Physics Manager中设置的“层”名称相同。有没有一种简单的方法可以做到这一点?所有这些都允许您指定一个layerMask。您所需要的只是为您的层找到合适的int值,并将其作为参数提供 看起来是这样的: int layerMask = LayerMask.NameToLayer("MyLayerName"); if(Physics.Raycast(transform.position, transform.TransformDirectio

我希望我的Physics.Raycast与我在Physics Manager中设置的“层”名称相同。有没有一种简单的方法可以做到这一点?

所有这些都允许您指定一个layerMask。您所需要的只是为您的层找到合适的int值,并将其作为参数提供

看起来是这样的:

int layerMask = LayerMask.NameToLayer("MyLayerName");
if(Physics.Raycast(transform.position, transform.TransformDirection (Vector3.forward), out hit, Mathf.Infinity, layerMask)) 
{
    //I hit something somewhere that is on my layer
}
如果它们是位掩码,您当然可以为要包括或排除的层的任何组合指定掩码