LayerMask:
在射线检测的时候,
1、使用LayerMask.NameToLayer赋予层级参数:
Physics.Raycast(ray, out hit, Mathf.Infinity, (1 << LayerMask.NameToLayer("Test1")) | (1 << LayerMask.NameToLayer("Test2")) | (1 << LayerMask.NameToLayer("Test3")) | 1 << LayerMask.NameToLayer("Test4"))
2、使用LayerMask.GetMask赋予层级参数:
int layerMask1 = LayerMask.GetMask("Test1");
int layerMask2 = LayerMask.GetMask("Test2");
RaycastHit[] hitInfo = Physics.RaycastAll(this.transform.position, v3, 10f, layerMask1 | layerMask2);
区别就是NameToLayer需要手动做位移运算,而GetMask不需要这样做。