int layer1
int layer2
1.开启某个层
camera.cullingMask= 1 << layer1
2.关闭某个层
camera.cullingMask= 0 << layer2
3.开启多个层
camera.cullingMask= 1 << layer1 | 1 << layer2
4.关闭多个层
camera.cullingMask= ~(1 << layer1 | 1 << layer2)
5.打开Enemy层
(1)camera.cullingMask |= 1 << LayerMask.NameToLayer("Enemy")
(2)camera.cullingMask = (int) 1<<LayerMask.NameToLayer("Enemy")
6.关闭Enemy层
camera.cullingMask &= ~(1 << LayerMask.NameToLayer("Enemy"))
7.射线
LayerMask mask = ~(1<<3|1<<7);
void Update() {
if (Physics.Raycast(transform.position, transform.forward, 1000, mask.value))
Debug.Log("hit");
}